<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4816888726776350423</id><updated>2011-12-25T09:55:07.187-05:00</updated><category term='mobile'/><category term='android'/><category term='hero'/><title type='text'>Notes on RIA - Flex, Catalyst, AIR, Lcds, CF, Java.....</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>68</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-1271666022955838054</id><published>2010-11-02T16:09:00.001-04:00</published><updated>2010-11-03T10:03:07.440-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='hero'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>(CRUD) Simple Mobile app with Hero Flex SDK 4.5 (max preview)</title><content type='html'>&lt;p align="justify"&gt;Its nice to see Flex SDK adding functionality to support multi-screen. I quickly wanted to get my hands-on the Burrito and Hero before the trial period expires.&lt;/p&gt;&lt;p align="justify"&gt;I started with a simple to-do list application. What is the feature set? As Simple as it could be.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Create a task (enter task name, task details, set the priority)&lt;/li&gt;
&lt;li&gt;Edit a task&lt;/li&gt;
&lt;li&gt;Mark a task for completion&lt;/li&gt;
&lt;li&gt;Viewing list of completed tasks&lt;/li&gt;
&lt;li&gt;Delete a completed task&lt;/li&gt;
&lt;li&gt;Un-mark a completed task to bring it back to list of pending tasks&lt;/li&gt;
&lt;li&gt;Show colored bullets for priorities while viewing pending task list (red for high priority, blue for medium priority, green for low priority)&lt;/li&gt;
&lt;li&gt;have the pending/completed tasks sorted by priority&lt;/li&gt;
&lt;/ul&gt;&lt;p align="justify"&gt;Here are some screenshots of the app running in the emulator. (Unfortunately i dont own a android phone but tested it on colleagues android device and the rendering/transitions/persistence is amazing, i am an iphone user and i have to shell 99$ developer certificate just to compile the app for self-testing.. doh!). On windows 7, alt+printscreen gets that bottom bar (it doesnt come up in the real app, also the fonts are not so horrible on the real app, i had initially overwrote the font sizes to smaller sizes on the emulator but on the real device they were hard to read).&lt;/p&gt;&lt;p align="center"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/todo_mobileapp/1.png" /&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/todo_mobileapp/2.png" /&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/todo_mobileapp/3.png" /&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/todo_mobileapp/4.png" /&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/todo_mobileapp/5.png" /&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/todo_mobileapp/6.png" /&gt;&lt;/p&gt;&lt;br /&gt;
I'll share the source code in a while...&lt;br /&gt;
&lt;br /&gt;
The app can be downloaded here - &lt;a href="http://www.arunkumarm.com/codetouchblog/todo_mobileapp/Todo.apk"&gt;Todo Demo App&lt;/a&gt; &lt;i&gt;(Note: On Android device you will have to first install ADOBE AIR Runtime first otherwise this installation will fail) &lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-1271666022955838054?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/1271666022955838054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=1271666022955838054' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/1271666022955838054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/1271666022955838054'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/11/crud-simple-mobile-app-with-hero-flex.html' title='(CRUD) Simple Mobile app with Hero Flex SDK 4.5 (max preview)'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-4055086724408077117</id><published>2010-09-21T20:13:00.000-04:00</published><updated>2010-09-21T20:13:27.132-04:00</updated><title type='text'>Setting up Eclipse IDE for ExtJS, jQuery development (using Spket Editor)</title><content type='html'>&lt;p align="justify"&gt;The title says everything. This post provides detailed steps for eclipse lovers to have them setup their dev environment with ExtJS, jQuery development. At the time of writing this post, Eclipse IDE version is Helios, ExtJS version is 3.2.1&lt;/p&gt;&lt;p align="justify"&gt;Step 1 : Navigate to eclipse.org in your browser. Click on the downloads link. Click on "Eclipse IDE for JavaScript Web Developers" (or &lt;a href="http://www.eclipse.org/downloads/packages/eclipse-ide-javascript-web-developers/heliosr" target="_blank"&gt;Click here&lt;/a&gt;). Download the eclipse IDE for your favorite platform.&lt;/p&gt;&lt;p align="justify"&gt;Step 2: Launch Eclipse IDE. Navigate to Menu "Help-&gt;Install New Software". Click on "Available Software Sites" link. (You can alternately navigate here by choosing Window-&gt;Preferences-&gt;Install/Update-&gt;Available Software Sites). Click on "Add.." Button and enter Name: Spket, Location: http://www.spket.com/update/&lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/setup_eclipse_extjs/1.png"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p align="justify"&gt;Step 3: After adding the external site, close the dialog and come back to the install wizard. Select the site added in step(2) and it shows you with SpketIDE (IDE, TextEditor, Xerces). Select all and Proceed to Install (installing as plugin to eclipse)&lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/setup_eclipse_extjs/2.png"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p align="justify"&gt;Step 4: After Successful plugin installation in above step. Restart Eclipse. &lt;/p&gt;&lt;p align="justify"&gt;Step 5: Switch the perspective to Spket IDE. How? In your Eclipse IDE for JS Web developers, Navigate to  Window-&gt;Open Perspective-&gt;Other-&gt;Spket IDE (Choose). This is very important step.&lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/setup_eclipse_extjs/3.png"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p align="justify"&gt;Step 6: In your Eclipse IDE, navigate to Window-&gt;Preferences-&gt;Spket-&gt;JavaScript Profiles (select it) and click on "New" button to proceed to add a new profile. Enter profile name as "ExtJS" (or whatever you are comfortable with)&lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/setup_eclipse_extjs/4.png"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p align="justify"&gt;Step 7: Select the "ExtJS" javascript profile added in step(6) and hit the "Add Library" Button. This will prompt you with list of available libraries. Select "ExtJS" from the drop down (jquery at a later step similarly)&lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/setup_eclipse_extjs/5.png"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p align="justify"&gt;Step 8: Now select the "ExtJS" added library under the "ExtJS" javascript profile and hit the "Add File" button. You should now browse to your ExtJS (v3.2.1 in my case) downloaded unzipped folder which contains file ext.jsb2 (select this file). &lt;i&gt;[Example: Select file in D:\Arun\ExtJS\ext-3.2.1\ext.jsb2]&lt;/i&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/setup_eclipse_extjs/6.png"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p align="justify"&gt;Step 9: Expand the "ExtJS" library and select all and close the dialog&lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/setup_eclipse_extjs/7.png"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p align="justify"&gt;Step 10: Associate all *.js files with Spket Editor. To do this, navigate to your eclipse menu Window-&gt;Preferences-&gt;General-&gt;Editors-&gt;File Associations-&gt;*.js (select) and in the list of editors select "Spket Javascript editor" and hit the default button (make this default editor for all *.js files)&lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/setup_eclipse_extjs/8.png"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p align="justify"&gt;Step 11: Create a new project, create sample.js file and start seeing code hints for your code editor in eclipse by hitting cntrl+Space keys&lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/setup_eclipse_extjs/9.png"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p align="justify"&gt;Step 12: Similar way, Repeat Step (7) and Step (8) by adding jQuery library and start seeing jQuery code hints&lt;/p&gt;&lt;p align="justify"&gt;Start creating a simple app and start seeing the results with-in eclipse - &lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/setup_eclipse_extjs/10.png"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/setup_eclipse_extjs/11.png"&gt;&lt;/img&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-4055086724408077117?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/4055086724408077117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=4055086724408077117' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4055086724408077117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4055086724408077117'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/09/setting-up-eclipse-ide-for-extjs-jquery.html' title='Setting up Eclipse IDE for ExtJS, jQuery development (using Spket Editor)'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-407256541654122236</id><published>2010-08-27T23:25:00.000-04:00</published><updated>2010-08-27T23:25:43.695-04:00</updated><title type='text'>WebORB for PHP - Centralizing DB Connection, Querying DB, Closing DB Connection, DB error handling (not using session)</title><content type='html'>&lt;p align="justify"&gt;It is pretty easy to get started with WebORB for PHP for Adobe Flex. Adobe Flex provides front end UI that can communicate with server side php objects using actionscript remoting.&lt;/p&gt;&lt;p align="justify"&gt;What is AS Remoting? Let’s say you have an ActionScript object Account.as which contains accountNumber, accountName parameters.  If you wish to save information from user interface mapped into an actionscript object instance say newAccount of type Account.as, you could send the actionscript object to php mapped object newAccount of type Account.php containing same parameters as that of actionscript object. The form of serialization of AS Object and de-serialization into native objects on the server side in simple terms is called AS Remoting.&lt;/p&gt;&lt;p align="justify"&gt;At the time of writing this article, I am working with version 3.6 (latest) available from &lt;a href="http://www.themidnightcoders.com/products/weborb-for-php/overview.html" target="_blank"&gt;Midnight Coders&lt;/a&gt;. Like I said as I began typing the post, it’s pretty easy to get started. Download weborbphp3.6 from Midnight Coders(after a signup), and deploy it to your webroot, tweak configuration a bit and you are all set to get started. You could directly open up the weborb console which is very beautiful. It is central point to get started with examples.&lt;/p&gt;&lt;p align="justify"&gt;In this post, I am assuming you have already setup webORB for PHP and have updated your remoting-config.xml with appropriate destination and have your Adobe flex application ready to invoke remote php service. The initial getting started examples, easily help you write simple service that connects to MYSQL db. It’s pretty good start point, but as you start to develop, you really don’t want to open a DB connection in every service call. You definitely need a central place to handle the DB handling.&lt;/p&gt;&lt;p align="justify"&gt;Here Is an over-view of what I have in my directory structure:&lt;ul&gt;&lt;li&gt;{webroot}\weborbphp36\&lt;/li&gt;&lt;li&gt;{webroot}\weborbphp36\Services&lt;/li&gt;&lt;li&gt;{webroot}\weborbphp36\Flex-Application-bin-debug&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p align="justify"&gt;I can access my webORB for PHP console using &lt;i&gt;http://localhost:89/weborbphp36/&lt;/i&gt; (I changed the port in apache to 89 to avoid conflicting with default port 80 usually with IIS) and I can access my Flex application deployed using &lt;i&gt;http://localhost:89/weborbphp36/Flex-Application-bin-debug/login.html&lt;/i&gt;&lt;/p&gt;&lt;p align="justify"&gt;Let’s say you are working with one remote service, UserLoginService.php which simply validates the userLogin entered using Adobe Flex User Interface.&lt;/p&gt;&lt;p align="justify"&gt;This is how my initial UserLoginService.php will look like&lt;ul&gt;&lt;li&gt;Open a DB Connection&lt;/li&gt;&lt;li&gt;Query the DB&lt;/li&gt;&lt;li&gt;Close the DB Connection&lt;/li&gt;&lt;li&gt;Handle any DB Exception&lt;/li&gt;&lt;li&gt;Return the DB Result to the caller&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;textarea name="code" class="php"&gt;&lt;br /&gt;
&lt;?php
/*
 * @Author Arun Kumar Madas (arun.com@gmail.com)
 * 
 * Created on Apr 8, 2010
 *
 * All Copyrights on this code are owned by the author and
 * this code cannot be distributed, tampered by no means.
 * 
 * Last Edited by Author on Apr 8, 2010
 * 
 */
 require_once("UserLogin.php");
 
 class UserLoginService
 {
  public function validateUserLogin(UserLogin $userLogin)
  {
  //$link = mysql_connect("localhost", "root", "");
  $link = mysql_connect("localhost", "root", "");

  if( !$link )
   throw new Exception( "cannot connect to database" );

  if( !mysql_select_db("database_schema_name", $link) )
   throw new Exception( "cannot select database - amadas_passwordgenie" );

   $query = sprintf( "select screenname, password from userlogin where screenname = '%s' and password = '%s'", mysql_real_escape_string($userLogin-&gt;screenname), mysql_real_escape_string($userLogin-&gt;password ) );&lt;br /&gt;
   $result = mysql_query( $query );&lt;br /&gt;
&lt;br /&gt;
   if( !$result )&lt;br /&gt;
    throw new Exception( 'Error executing Query ' . mysql_error() );    &lt;br /&gt;
&lt;br /&gt;
  if(mysql_num_rows($result) == 0)&lt;br /&gt;
   throw new Exception ( 'Invalid User/Password combination' );&lt;br /&gt;
&lt;br /&gt;
   $passwordQuery = sprintf( "select id, screenname, companyname, companyurl, loginid, password, additionalinfo from passwords where active_flag = 'A' and screenname = '%s'", mysql_real_escape_string($userLogin-&gt;screenname));&lt;br /&gt;
 $passwordResult = mysql_query( $passwordQuery );&lt;br /&gt;
     mysql_close( $link );  &lt;br /&gt;
 return $passwordResult;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
?&gt;&lt;/textarea&gt;&lt;br /&gt;
&lt;p align="justify"&gt;And this is my UserLogin.php&lt;/p&gt;&lt;textarea name="code" class="php"&gt;&lt;?php
/*
 * @Author Arun Kumar Madas (arun.com@gmail.com)
 * 
 * Created on Apr 8, 2010
 *
 * All Copyrights on this code are owned by the author and
 * this code cannot be distributed, tampered by no means.
 * 
 * Last Edited by Author on Apr 8, 2010
 * 
 */
 class UserLogin
 {
  var $screenname;
  var $password;
 }
?&gt;&lt;/textarea&gt;&lt;br /&gt;
&lt;p align="justify"&gt;See my folder structure in Eclipse (I use PHPEclipse, simple and easy). Notice, that both UserLogin.php and UserLoginService.php both reside in the same directory. Also the root of this folder structure goes into {webroot}/weborbphp36/services/{yourServicesDirectoryStructureHere…}&lt;/p&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/weborb_php/1.png"&gt;&lt;/img&gt;&lt;br /&gt;
&lt;p align="justify"&gt;After you have written this service, You can write a simple test (call it _skunkworks test? Or just a UnitTest to have this invoked through a browser)&lt;/p&gt;&lt;p align="justify"&gt;I wrote my test UserLoginTest.php into a directory named “tests” as below&lt;/p&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/weborb_php/2.png"&gt;&lt;/img&gt;&lt;br /&gt;
&lt;p align="justify"&gt;Here is the code for simple test – UserLoginTest.php&lt;/p&gt;&lt;textarea name="code" class="php"&gt;&lt;?php
/*
 * @Author Arun Kumar Madas (arun.com@gmail.com)
 * 
 * Created on Apr 9, 2010
 *
 * All Copyrights on this code are owned by the author and
 * this code cannot be distributed, tampered by no means.
 * 
 * Last Edited by Author on Apr 9, 2010
 */
  include_once  "..\userlogin\UserLoginService.php";
 
 $userLoginInstance = new UserLogin;
 $userLoginInstance -&gt; screenname = "weborbtest";&lt;br /&gt;
 $userLoginInstance -&gt; password = "weborbtest";&lt;br /&gt;
 $userLoginInstance -&gt; emailId = "test";&lt;br /&gt;
 &lt;br /&gt;
 $userLoginService = new UserLoginService;&lt;br /&gt;
 $result = $userLoginService -&gt; validateUserLogin($userLoginInstance);&lt;br /&gt;
 echo mysql_num_rows($result) . '&lt;br /&gt;';&lt;br /&gt;
 echo mysql_result($result, 0);&lt;br /&gt;
 &lt;br /&gt;
?&gt;&lt;/textarea&gt;&lt;br /&gt;
&lt;p align="justify"&gt;Run it in browser and see the result –&lt;/p&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/weborb_php/3.png"&gt;&lt;/img&gt;&lt;br /&gt;
&lt;p align="justify"&gt;The beauty of webORB for PHP is the console. You can test it directly from the console&lt;/p&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/weborb_php/4.png"&gt;&lt;/img&gt;&lt;br /&gt;
&lt;img src="http://www.arunkumarm.com/codetouchblog/weborb_php/5.png"&gt;&lt;/img&gt;&lt;br /&gt;
&lt;p align="justify"&gt;Looks great so far.  So what is the problem?&lt;/p&gt;&lt;p align="justify"&gt;What if we have to write 100 Services to build a large application? It would be tedious to write services which always do the sequence of Opening DB connection -&gt; query -&gt; handle exeption -&gt; close db -&gt; return result. Even if the developer wants to write it this way, when deploying application to production where database connection parameters change from development, modifying it in all services is really a big pain&lt;/p&gt;&lt;p align="justify"&gt;After a bit of search, I found this post in forums. I implemented the solution suggested, but it was very inconsistent and I was frequently getting errors in my console (I got it to work but was not consistent in browser vs console, it could be probable that I missed something?). So I wanted a robost solution to this problem.&lt;/p&gt;&lt;p align="justify"&gt;I sought the help of Inheritence (object oriented PHP in v5). Have a super class DBUtil.php which has a method executeTheQuery($query), performs this sequence and returns.&lt;/p&gt;&lt;p align="justify"&gt;Here is the code for DBUtil.php I have written –&lt;/p&gt;&lt;textarea name="code" class="php"&gt;&lt;?php
/*
 * Created on Aug 26, 2010
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
 class DBUtil
 {
  public function executeTheQuery($query)
  {
    
    /******************************************************
     *  Begin : DB Parameters
     *****************************************************/
    $DBHOST = "localhost";
     $DBUSER = "root";
     $DBPASSWORD = "";
     $DBSCHEMA=" database_schema_name ";
    /******************************************************
     *  END : DB Parameters
     *****************************************************/

   $link = mysql_connect($DBHOST, $DBUSER, $DBPASSWORD);
 
   if( !$link )
    throw new Exception( "cannot connect to database" );
 
   if( !mysql_select_db($DBSCHEMA, $link) )
    throw new Exception( "cannot select database - amadas_passwordgenie" );
 
    $result = mysql_query( $query );
 
    if( !$result )
     throw new Exception( 'Error executing Query - ' . mysql_error() );    
 
        mysql_close( $link );
   
    return $result;
  }
 }
?&gt;&lt;/textarea&gt;&lt;br /&gt;
&lt;p align="justify"&gt;Now place this in your services directory structure.&lt;/p&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/weborb_php/6.png"&gt;&lt;/img&gt;&lt;br /&gt;
&lt;p align="justify"&gt;Don’t forget to extend this class in all your service classes *Service.php (in our case UserLoginService.php).&lt;/p&gt;&lt;p align="justify"&gt;Now the simplified UserLoginService.php will look like this –&lt;/p&gt;&lt;textarea name="code" class="php"&gt;&lt;?php
/*
 * @Author Arun Kumar Madas (arun.com@gmail.com)
 * 
 * Created on Apr 8, 2010
 *
 * All Copyrights on this code are owned by the author and
 * this code cannot be distributed, tampered by no means.
 * 
 * Last Edited by Author on Apr 8, 2010 
 */
 require_once("UserLogin.php");
 require_once("../dbcon/passwordgenie/DBUtil.php");
 
 class UserLoginService extends DBUtil
 {
  public function validateUserLogin(UserLogin $userLogin)
  {
   $query =  "select screenname, password from userlogin where screenname = '". $userLogin-&gt;screenname . "' and password = '". $userLogin-&gt;password ."'";&lt;br /&gt;
   $result = $this-&gt;executeTheQuery( $query );&lt;br /&gt;
   if( !$result )&lt;br /&gt;
    throw new Exception( 'Error executing Query ' . mysql_error() );    &lt;br /&gt;
  if(mysql_num_rows($result) == 0)&lt;br /&gt;
   throw new Exception ( 'Invalid User/Password combination' );&lt;br /&gt;
&lt;br /&gt;
   $passwordQuery = "select id, screenname, companyname, companyurl, loginid, password, additionalinfo from passwords where active_flag = 'A' and screenname = '". $userLogin-&gt;screenname ."' order by companyName";&lt;br /&gt;
   $passwordResult = $this-&gt;executeTheQuery( $passwordQuery );&lt;br /&gt;
   return $passwordResult;&lt;br /&gt;
  }&lt;br /&gt;
 } &lt;br /&gt;
?&gt;&lt;/textarea&gt;&lt;br /&gt;
&lt;p align="justify"&gt;Now let’s start the tests once again.&lt;/p&gt;&lt;p align="justify"&gt;With this approach, if you perform our browser test, it works great. But webORB for PHP console and application will not work. They throw an error DBUtil.php object not found. (how did I figure this out? Look at the error logs inside apache server, access.log and error.log).&lt;/p&gt;&lt;p align="justify"&gt;So what is going wrong? (It took me a while to figure this out). We need to place a copy of this file DBUtil.php relative to the weborbphp36/console directory. Why? console directory is where the weborb console.swf is located. To when we try to test it in console, it refers to relative directory to that folder.&lt;/p&gt;&lt;p align="justify"&gt;Here are the directories to note:&lt;ul&gt;&lt;li&gt;{webroot}/weborbphp36/&lt;/li&gt;&lt;li&gt;{webroot}/weborbphp36/console&lt;/li&gt;&lt;li&gt;{webroot}/weborbphp36/dbcon/applicationdirectoryname/DBUtil.php&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p align="justify"&gt;Now if you test your application, all of them work fine (Browser based UnitTest.php, Console based service test, Application itself)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-407256541654122236?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/407256541654122236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=407256541654122236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/407256541654122236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/407256541654122236'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/08/weborb-for-php-centralizing-db.html' title='WebORB for PHP - Centralizing DB Connection, Querying DB, Closing DB Connection, DB error handling (not using session)'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-6265866983625233977</id><published>2010-08-18T23:34:00.000-04:00</published><updated>2010-08-18T23:34:21.829-04:00</updated><title type='text'>Frequent Flash Builder Crash w/ Oracle(sun) JRE 1.6.0_21_b06</title><content type='html'>&lt;p align="justify"&gt;When i was setting up Flash Builder on my laptop, I directly went to java.sun.com to download the then available latest Oracle(sun) JRE 1.6.0_21 b06. I had the vmargs set for the eclipse (launch time). I noticed Flash Builder suddenly freezes/crashes abruptly. This is more frequent if you have Subclipse 1.6 installed in your eclipse (my version is 3.5.2) and when you perform checkout/update/commit &lt;/p&gt;&lt;p align="justify"&gt;Check your Java run time&lt;/p&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/FB_frequent_crash/1.png"&gt;&lt;br /&gt;
&lt;p align="justify"&gt;Navigate to this &lt;a href="http://wiki.eclipse.org/FAQ_How_do_I_run_Eclipse%3F#Oracle.2FSun_VM_1.6.0_21_on_Windows" target="_blank"&gt;URL&lt;/a&gt; which talks about the fix &lt;/p&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/FB_frequent_crash/2.png"&gt;&lt;br /&gt;
&lt;p align="justify"&gt;Check the error log in your FB &lt;a href="http://ria.arunkumarm.com/2010/08/error-log-for-frequent-flex-builder.html" target="_blank"&gt;as here&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/FB_frequent_crash/1_1.png"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-6265866983625233977?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/6265866983625233977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=6265866983625233977' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6265866983625233977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6265866983625233977'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/08/frequent-flash-builder-crash-w.html' title='Frequent Flash Builder Crash w/ Oracle(sun) JRE 1.6.0_21_b06'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-3293480145699856256</id><published>2010-08-18T23:18:00.000-04:00</published><updated>2010-08-18T23:18:04.299-04:00</updated><title type='text'>Error Log for frequent Flex Builder crash?</title><content type='html'>&lt;p align="justify"&gt;Have you been tired of seeing your Flex Builder freeze/crash at times without a prompt? Here is an easy way to findout the errorLog that can help you read/diagonise what is probably going wrong. &lt;/p&gt;&lt;p align="justify"&gt;I have FB installed as eclipse plugin. Navigate to Help-&gt;About Eclipse SDK&lt;/p&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/how_to_find_out_FBCrashes/1.png" /&gt; &lt;br /&gt;
&lt;p align="justify"&gt;Click on the Installation Details. If you are using old version of ecilpse (i am using 3.5), you might want to hit the configuration button in this dialog&lt;/p&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/how_to_find_out_FBCrashes/2.png" /&gt; &lt;br /&gt;
&lt;p align="justify"&gt;Click on the view error log button under the configuration tab (for eclipse 3.5). For earlier versions of eclipse, you would have already clicked the configuration button and now you can hit the view error log button&lt;/p&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/how_to_find_out_FBCrashes/3.png" /&gt; &lt;br /&gt;
&lt;p align="justify"&gt;It opens up the log file residing in your workspace inner directory&lt;/p&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/how_to_find_out_FBCrashes/4.png" /&gt; &lt;br /&gt;
&lt;p align="justify"&gt;You would need to scrolldown to the bottom of the page (read bottom-up) for latest crash/freeze log&lt;/p&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/how_to_find_out_FBCrashes/5.png" /&gt; &lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-3293480145699856256?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/3293480145699856256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=3293480145699856256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3293480145699856256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3293480145699856256'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/08/error-log-for-frequent-flex-builder.html' title='Error Log for frequent Flex Builder crash?'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-5855057469740419783</id><published>2010-08-04T22:01:00.000-04:00</published><updated>2010-08-04T22:01:26.296-04:00</updated><title type='text'>Easy way to Read Flex 4 SDK Code in Flash Builder</title><content type='html'>&lt;p align="justify"&gt;A good Flex developer must read through the SDK code to understand how the internals are written. This is one of the best way to mature from a beginner/intermediate flex application developer to an advanced developer. In the early stages, developer spends more time in using existing built-in components to build the UI and to power it with jazz, an easier way is to add lots and lots of styling, skinning. Nice, looks good… So what next? Slowly, patiently reading through and understanding the SDK internals will not only enable the person to grow-up to the next level but also let think beyond current mind-set of wire-framing the UI using most basic elementary existing components. Who doesn’t want jazz? iPhone’s user controls are nice so? Don’t get me wrong, Using an inbuilt component is not wrong but I am stressing on the fact that understanding thoroughly how an inbuilt component is written will mature from a beginner/intermediate level application developer to advanced level.&lt;/p&gt;&lt;p align="justify"&gt;Some beginners are lazy to advance (or don’t have right direction) and some intermediates are comfortable at their level in just getting the work accomplished and don’t get time to think what’s next. &lt;i&gt;&lt;font color="lightblue"&gt;&lt;quote&gt;Who wants to go through the huge SDK code? What big difference would it make? I am not anyway helping Adobe come-up with their next version of SDK while I am just struggling to learn how to use the current released SDK. And I always open up the AS Docs for Flex SDK 4 in my nice and fancy browser to refer to the available packages, classes, functions, properties etc. The Control+F (Find) works great in there. I never needed to go through the code as long as I am comfortable getting the work done&lt;/quote&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;&lt;p align="justify"&gt;But trust me, spending time with the SDK code is the best way to learn Flex&lt;/p&gt;&lt;p align="justify"&gt;As you keep working with your FlashBuilder, follow how you can easily create the project in your FB as if it were one of the projects you were working on (don’t worry about building it yet) and you can navigate through the files easily and read through the implementation&lt;/p&gt;&lt;p align="justify"&gt;Here is a small step-by-step guide:&lt;/p&gt;&lt;p align="left"&gt;&lt;font color="lightgreen"&gt;Step 1 : From the Menu Choose File -&gt; New Action Script Project&lt;/font&gt;&lt;br /&gt;
&lt;img src="http://www.arunkumarm.com/codetouchblog/readingsdkcodeinfb/one.png" target="_blank" /&gt;&lt;br /&gt;
&lt;/p&gt;&lt;p align="left"&gt;&lt;font color="lightgreen"&gt;Step 2: Enter your project name (say SDK4Reference), Choose your workspace path, Choose Default SDK (since we are not intending to compile anything), Hit Next&lt;/font&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/readingsdkcodeinfb/two.png" target="_blank" /&gt;&lt;br /&gt;
&lt;p align="left"&gt;&lt;font color="lightgreen"&gt;Step 3: Choose the Source Path Tab in this dialog. Click on Add Folder button. Click on Browse Button, Navigate to Flex SDK 4 projects directory&lt;/font&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/readingsdkcodeinfb/three.png" target="_blank" /&gt;&lt;br /&gt;
&lt;/p&gt;&lt;p align="left"&gt;&lt;font color="lightgreen"&gt;Step 4 : Select the directory shown below and Hit Finish&lt;/font&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/readingsdkcodeinfb/four.png" target="_blank" /&gt;&lt;br /&gt;
&lt;/p&gt;&lt;p align="left"&gt;&lt;font color="lightgreen"&gt;Step 5 : Your Project will be listed on the left. Open up the [Source Path] and navigate to say framework-&gt;src-&gt;mx-&gt;collections-&gt;*. You can open the file you wish by also using a shortcut-key Cntrl+Shift+R (opening a resource), and type say DateChooser that lists you the source file from anywhere in your project&lt;/font&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/readingsdkcodeinfb/five.png" target="_blank" /&gt;&lt;br /&gt;
&lt;/p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-5855057469740419783?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/5855057469740419783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=5855057469740419783' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5855057469740419783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5855057469740419783'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/08/easy-way-to-read-flex-4-sdk-code-in.html' title='Easy way to Read Flex 4 SDK Code in Flash Builder'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-3075992024183401121</id><published>2010-07-17T21:40:00.001-04:00</published><updated>2010-07-17T23:42:11.710-04:00</updated><title type='text'>FlashBuilder: Missing "Delimiter" from SyntaxColoring-&gt;ActionScript</title><content type='html'>&lt;p align="justify"&gt;I choose to change my code editor theme in Flash Builder (eclipse) to dark black (voodoo?) without having to download it from any of the openly distributed free eclipse themes. I started from the scratch and was almost finishing and i noticed that in Flash Builder eclipse preferences, Under Window-&gt;Preferences-&gt;FlashBuilder-&gt;Editor-&gt;SyntaxColoring-&gt;ActionScript, we have a missing "Delimiter" option with custom color. However, I could very well see it present under the CSS category. I was just stuck at my theme as my delimiters : (colon) and ; (semi colon) being matched with the background black and hence appear hidden breaking my theme.&lt;/p&gt;&lt;p /&gt;&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/missingdelimiterparam/one.png" width="650" height="500"/&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/missingdelimiterparam/three.png" /&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/missingdelimiterparam/four.png" /&gt;&lt;/p&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/missingdelimiterparam/two.png" width="650" height="500"/&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/missingdelimiterparam/five.png" /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-3075992024183401121?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/3075992024183401121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=3075992024183401121' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3075992024183401121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3075992024183401121'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/07/flashbuilder-missing-delimiter-from.html' title='FlashBuilder: Missing &quot;Delimiter&quot; from SyntaxColoring-&gt;ActionScript'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-2936607728784860870</id><published>2010-04-08T23:59:00.000-04:00</published><updated>2010-04-08T23:59:13.378-04:00</updated><title type='text'>Flat View, Package Explorer in FB4</title><content type='html'>The new Flash Builder 4 comes with package explorer. Flex Builder 3 developers see this an instant eye&amp;nbsp;transition in viewing project contents. Well, if you think you need some more time to move to the new package explorer in v4, you can still view the older folder structure of v3 in v4 by enabling a panel&amp;nbsp;&amp;nbsp; Window-&amp;gt;Show View-&amp;gt;Others-&amp;gt;General-&amp;gt;Project Explorer (drag the panel next to package explorer so you can switch easily). No this is not your old v3 explorer though, it just gives you the old feel.&lt;br /&gt;
&lt;br /&gt;
In Flash Builder 4, I like the toggle option for Flat View vs Hierarchial View. Here is the option to switch -&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;img src="http://www.arunkumarm.com/codetouchblog/packgexplorer/packageexplorer_1.JPG"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Flat View&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://www.arunkumarm.com/codetouchblog/packgexplorer/packageexplorer_2.JPG"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Hierarchial View&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://www.arunkumarm.com/codetouchblog/packgexplorer/packageexplorer_3.JPG"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-2936607728784860870?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/2936607728784860870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=2936607728784860870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2936607728784860870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2936607728784860870'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/04/flat-view-package-explorer-in-fb4.html' title='Flat View, Package Explorer in FB4'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-8304460992502427612</id><published>2010-04-08T17:10:00.004-04:00</published><updated>2010-04-08T17:21:34.881-04:00</updated><title type='text'>In-house java robot for loading testing your webservices?</title><content type='html'>&lt;div style="text-align: justify;"&gt;Most SOA based architected applications need to have webservices load tested before we assess the quality of code. Tools like QTP, OpenLoad, NeoLoad etc. provide you with infrastructure and sophistication to achieve this with a price tag attached to it. There is also an open source alternate Apache JMeter. If you are interested in build an in-house java code that just serves your purpose, you should be good to start here&lt;/div&gt;&lt;br /&gt;
What do you want to test?&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Take one webservice call and test it for the load. Say webservice that fetches list of customers in the database with a matching property criteria (say search of customer from UI)&lt;/li&gt;
&lt;li&gt;You can simulate a constant load of say 50 users &lt;/li&gt;
&lt;li&gt;You may want to setup a step load, of say 10 initial users ramping at the rate of 5 users every two seconds&lt;/li&gt;
&lt;li&gt;Or more….&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&amp;nbsp;If you have a network monitor tool or a http proxy debugging tool, you can watch while you perform your screen action how data is going over the network (of-course http only). This will give you an idea of what the input payload is to the webservice end url. Say take an example of Customer search screen where user search criteria options are sent to the webservice and the results are fetched&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;An important point to remember is “Load Testing is not test the client front end UI but loading the middle tier to see how the database server is responding, how your application server is handling the threads, memory, CPU utilization etc.”&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Let’s create the input SOAP Request in a flat XML that can be parsed in your java client which is ready to fire. Say a sample here is search a customer with SOAP request containing firstName starting with ‘Jam’ (ex: James, Jamey, Jamoe)&lt;/div&gt;&lt;br /&gt;
&lt;textarea class="xml" name="code"&gt;
&lt;SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
  &lt;SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"&gt;
    &lt;intf:getCustomers xmlns:intf="http://webservices.com.webservices"&gt;
      &lt;searchCriteria&gt;
         &lt;id&gt;&lt;/id&gt;
         &lt;firstName&gt;Jam&lt;/firstName&gt;
         &lt;lastName&gt;&lt;/lastName&gt;
      &lt;/searchCriteria&gt;
    &lt;/intf:getCustomers&gt;
  &lt;/SOAP-ENV:Body&gt;
&lt;/SOAP-ENV:Envelope&gt;

&lt;/textarea&gt;&lt;br /&gt;
&lt;br /&gt;
Simulate a constant load of say 50 users?&lt;br /&gt;
&lt;br /&gt;
Lets first start with One User trying to send SOAP Request to end url&lt;br /&gt;
&lt;br /&gt;
&lt;textarea class="java" name="code"&gt;
public class HTTPClientInvokerThread implements Runnable {
 
 public void run()
 {
  String SOAPUrl = "http://serverhostip/webservices/ /PointOfSaleWebServices.cfc";
        String xmlFile2Send = "resources\\input.xml"; //relative to proj source directory
        String SOAPAction = "";
        
        try
        {
      // Create the connection where we're going to send the file.
         URL url = new URL(SOAPUrl);
         URLConnection connection = url.openConnection();
         HttpURLConnection httpConn = (HttpURLConnection) connection;
 
         // Open the input file. After we copy it to a byte array, we can see
         // how big it is so that we can set the HTTP Cotent-Length
         // property 
         FileInputStream fin = new FileInputStream(xmlFile2Send);
 
         ByteArrayOutputStream bout = new ByteArrayOutputStream();
     
         // Copy the SOAP file to the open connection.
         copy(fin,bout);
         fin.close();
 
         byte[] b = bout.toByteArray();
 
         // Set the appropriate HTTP parameters.
         httpConn.setRequestProperty( "Content-Length",
                                      String.valueOf( b.length ) );
         httpConn.setRequestProperty("Content-Type","text/xml; charset=utf-8");
     httpConn.setRequestProperty("SOAPAction",SOAPAction);
         httpConn.setRequestMethod( "POST" );
         httpConn.setDoOutput(true);
         httpConn.setDoInput(true);
 
         // Everything's set up; send the XML that was read in to b.
         OutputStream out = httpConn.getOutputStream();
         out.write( b );    
         out.close();
 
         // Read the response and write it to standard out.
 
         InputStreamReader isr =
             new InputStreamReader(httpConn.getInputStream());
         BufferedReader in = new BufferedReader(isr);
 
         String inputLine;
 
         while ((inputLine = in.readLine()) != null)
             System.out.println(inputLine);
 
         in.close();
        }
        catch(Exception e) {
         e.printStackTrace();
        }
 }

// copy method 
   public static void copy(InputStream in, OutputStream out) 
    throws IOException {

     // don’t allow other threads to read from the
     // input or write to the output while copying is
     // going on 

     synchronized (in) {
       synchronized (out) {

         byte[] buffer = new byte[256];
         while (true) {
           int bytesRead = in.read(buffer);
           if (bytesRead == -1) break;
           out.write(buffer, 0, bytesRead);
         }
       }
     }
   }

&lt;/textarea&gt;&lt;br /&gt;
&lt;br /&gt;
Works for one User? Lets Test it first. Yup, it works.. lets move on…&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;You can create instances of this thread class in a for loop (want load of 50 users, loop it on counter of 50?), kick of all threads. You can customize this code logic with how you want to see the workflow / actions the way you want to.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;You may want to de-couple some of these into small functions where a constant load will just read the input SOAP one by one (50 times) and at one go you can hit the out.write(); that just flushes all at one go.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;You can simulate a step-up load by implementing a timer and kicking in the users the way you need it. You can also add markers on the time taken for the requests to get served thread-wise&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Want to implement a record and customize script kind of tool? Try JPCap utility which provides you with a http sniffing. Capturing the input and providing a nice interface with tons of data points, you get to keep your job for 3 months atleast.&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-8304460992502427612?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/8304460992502427612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=8304460992502427612' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8304460992502427612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8304460992502427612'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/04/in-house-java-robot-for-loading-testing.html' title='In-house java robot for loading testing your webservices?'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-9218477148382741168</id><published>2010-04-02T10:28:00.004-04:00</published><updated>2010-04-08T17:25:15.332-04:00</updated><title type='text'>Some Interview Questions on Flex</title><content type='html'>&lt;div align="justify"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Difference between ArrayCollection and ListCollectionView?&lt;/li&gt;
&lt;li&gt;Difference between ArrayCollection vs Array?&lt;/li&gt;
&lt;li&gt;Difference between Sprite and UIComponent and how do you add a spite to a canvas? &lt;/li&gt;
&lt;li&gt;Difference between DisplayObjectContainer and DisplayObject?&lt;/li&gt;
&lt;li&gt;what does listData contain in ItemRenderers? What is the Type of listData?&lt;/li&gt;
&lt;li&gt;How do you access methods in DG from external itemRenderers?&lt;/li&gt;
&lt;li&gt;What is the data type of the dataprovider property in DG?&lt;/li&gt;
&lt;li&gt;What are the different data types that the data provider can take? How does it resolve different data types internally in the framework?&lt;/li&gt;
&lt;li&gt;What collection change event gets fired when data changes in arrayCollection?&lt;/li&gt;
&lt;li&gt;What are the advantages of using arraycollection as a dataprovider instead of array in DG?&lt;/li&gt;
&lt;span class="fullpost"&gt;
&lt;li&gt;DataGrid extends which class?&lt;/li&gt;
&lt;li&gt;What Class does all list base controls extend? and implement?&lt;/li&gt;
&lt;li&gt;Difference between style and a property?&lt;/li&gt;
&lt;li&gt;How do you create a new style for a brand new component just assembled with assets in createChildren() in action script extending UIComponent?&lt;/li&gt;
&lt;li&gt;What will happen when you removeChild() and addChild()?&lt;/li&gt;
&lt;li&gt;what does clear() do in graphics class?&lt;/li&gt;
&lt;li&gt;What are non-visual components in flex? What class do they extend?&lt;/li&gt;
&lt;li&gt;Where is finally used and what does it do?&lt;/li&gt;
&lt;li&gt;What is overloading a constructor? How do you overload constructors in flex? &lt;br /&gt;
- Action script does not support overloading constructors&lt;/li&gt;
&lt;li&gt;What is invalidation Cycle? What are its uses?&lt;/li&gt;
&lt;li&gt;How do you make a component participate in invalidation cycle?&lt;br /&gt;
- Implement IInvalidating interface or extend UIComponent&lt;/li&gt;
&lt;li&gt;What are - IStyleClient, IChildList, ILayoutManager, IToolTipManagerClient, IInvalidating, IValidatorListener, IFlexModule, IAutomationObject, IPropertyChangeNotifier, IRepeaterClient, ISimpleStyleClient, IStateClient, IConstraintClient ?&lt;/li&gt;
&lt;li&gt;Why there is no invalidation cycle for createChildren()?&lt;/li&gt;
&lt;li&gt;How do you make component participate in event mechanism?&lt;br /&gt;
&amp;nbsp;- Extend EventDispatcher or any subclass of it or implement IEventDispatcher&lt;/li&gt;
&lt;li&gt;What is the DOM of a flex application?&lt;/li&gt;
&lt;li&gt;Where do you normally use IFlexDisplayObject?&lt;/li&gt;
&lt;li&gt;Or How do you create skinning for a component?&lt;br /&gt;
- To add skin properties to component implement the interface or extend DisplayObject&lt;/li&gt;
&lt;li&gt;What is a MovieClip? IUIMovieClip?&lt;/li&gt;
&lt;li&gt;What is localToGlobal and globalToLocal?&lt;/li&gt;
&lt;li&gt;What are explicitHeight, explicitWidth, unscaledWidth, unscaledHeight? When does flex call measure()? (when explicitHeight= NaN or explicitWidth=NaN)&lt;/li&gt;
&lt;li&gt;What happens in measure()?&lt;br /&gt;
measuredHeight, measuredWidth, measuredMinHeight, measuredMinWidth are set.&lt;/li&gt;
&lt;li&gt;What is layoutChrome()? When does it get called?&lt;br /&gt;
- before updateDisplayList() flex calls layoutChrome(). It gets scheduled to get called in next render update when invalidateDisplayList() is called&lt;br /&gt;
- It is used to define the border area around the container&lt;/li&gt;
&lt;li&gt;You are developing a custom component and you want to use some variables that should not be exposed outside. What is the best way to do it?&lt;/li&gt;
&lt;/span&gt;I'll keep adding to the list as i encounter interesting questions.&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-9218477148382741168?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/9218477148382741168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=9218477148382741168' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/9218477148382741168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/9218477148382741168'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/04/some-interview-questions-on-flex.html' title='Some Interview Questions on Flex'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-2053750132486798770</id><published>2010-03-26T13:22:00.003-04:00</published><updated>2010-03-26T13:37:37.212-04:00</updated><title type='text'>Running out of logical names for a Class Name?</title><content type='html'>&lt;p align="justify"&gt;Look at mx.collections.GroupingCollection2.as in sdk4&lt;/p&gt;
&lt;p /&gt;
&lt;p align="justify"&gt;3608: 'GroupingCollection' has been deprecated since 4.0.  Please use 'GroupingCollection2'. 
&lt;/p&gt;
&lt;p /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-2053750132486798770?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/2053750132486798770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=2053750132486798770' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2053750132486798770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2053750132486798770'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/03/running-out-of-logical-names-for-class.html' title='Running out of logical names for a Class Name?'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-6093369958645665758</id><published>2010-03-26T11:44:00.019-04:00</published><updated>2010-03-26T15:54:13.068-04:00</updated><title type='text'>Early migrating your projects from Flex 3.x to Flex 4 (SDK) + FlexBuilder3 to FlashBuilder4 without many code changes</title><content type='html'>&lt;p align="justify"&gt;For a project with close to 1000+ files in codebase, there are un-doubtedly many challenges in performing an early code migration.&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p align="justify"&gt;It’s always tough to sell your manager an idea of migrating code base to a new version. In Medium to small corporate firms, Most Managers play multiple roles of Project Management, Technical Management and Client management. Delivery manager would slightly share or buy most of what project manager informs about technical challenges or deliver dates negotiation due to challenges. There are some advantages and disadvantages for lead / front technical guys who want to prove that the new version is going to help codebase/product in long run with tremendous enhancements. Most of these managers are typically client oriented and think in terms of numbers in most occasions and are considerably less caring about migration efforts / future code enhancements especially when there was huge effort in building a stable version, well appreciated and satisfied by the client&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p align="justify"&gt;As a Lead or Front facing Technical guy, you are pretty excited about the release &amp;amp; all the news floating around about Flex 4, Flash Builder 4, Coldfusion Builder and you spread your thought across to the manager making decisions claiming that it would be great to migrate codebase for a long term plan. Having worked on the long ran Beta’s (from Adobe) Technical guys know most of the new features released in these new versions&lt;/p&gt;
&lt;p&gt;
&lt;span class="fullpost"&gt;
&lt;p&gt;
&lt;p align="justify"&gt;Thanks to Adobe for giving us backward compatibility with the new version of Flex 4 SDK in Flash Builder 4. If you are working on a larger project implemented with Flex 3 and wish to migrate from Flex 3.x SDK to Flex 4 SDK and FlexBuilder3 to Flash Builder 4 (for developer IDE enhancements), start off here : &lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;Export Latest copy of your Source code from repository&lt;/li&gt;
&lt;li&gt;Create New Flex project in Flash Builder&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;p&gt;
&lt;u&gt;Export Latest copy of your Source code from repository&lt;/u&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p align="justify"&gt;Assuming you are on SVN, Switch your perspective to SVN Repository Exploring Perspective and on your source trunk, Export a latest copy of your Source directory –&lt;/p&gt;
&lt;p&gt;
&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/f4/1.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/f4/2.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/f4/3.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/f4/4.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
Hit OK and your Code is now exported to &lt;b&gt;&lt;i&gt;C:\flexsourcecode&lt;/i&gt;&lt;/b&gt;
&lt;p&gt;
&lt;p&gt;
&lt;u&gt;Create New Flex project in Flash Builder&lt;/u&gt;
&lt;p&gt;
&lt;p&gt;
Start your FlashBuilder.
&lt;p&gt;
&lt;p&gt;Right click in your package explorer and choose New -&gt; Flex Project&lt;/p&gt;
&lt;p&gt;
&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/f4/5.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;Choose your application server type, debug folder, etc. (omitted here).&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
Proceed and
&lt;p&gt;
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;Select &lt;b&gt;&lt;i&gt;"MX only"&lt;/i&gt;&lt;/b&gt; radio option&lt;/li&gt;
&lt;li&gt;Add any *.swc to your libs directory&lt;/li&gt;
&lt;li&gt;Choose appropriate setting for your Framework linkage&lt;/li&gt;
&lt;li&gt;Hit Finish&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/f4/6.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;Your project will be listed – &lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/f4/7.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;Copy your source code (earlier exported into C:\flexsourcecode) into the newly created project here&lt;/li&gt;
&lt;li&gt;Copy any *.swc into libs if you forgot to add earlier&lt;/li&gt;
&lt;li&gt;You can get rid of the test.mxml file (delete)&lt;/li&gt;
&lt;li&gt;Right Click properties on the project and delete the test.mxml and set your mainapplication mxml as default here&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/f4/8.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p align="justify"&gt;FB builds your project and reports any changes to be made.Here are the changes I had to make: &lt;/ p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;In Flex 3, &lt;i&gt;mx:Label textDecoration="bold"&lt;/i&gt; property value is wrong in Flex4&lt;/li&gt;
&lt;li&gt;In Flex 3, &lt;i&gt;mx:Label fontStyle="bold"&lt;/i&gt;property value is wrong in Flex 4&lt;/li&gt;
&lt;li&gt;For the above two use fontWeight instead&lt;/li&gt;
&lt;li&gt;In Flex 3, mx:states, mx:AddChild, components:xyz paddingTop="0" paddingLeft="4" paddingRight="10" paddingBottom="8", paddingType in this scenario is not supported in Flex 4. You will get compiler error&lt;/li&gt;
&lt;li&gt;Plus Lots of warnings... &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p&gt;For most you will be done here. &lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
As you run, you notice that your CSS will not be picked up.
&lt;p&gt;
&lt;p&gt;
Pull up your CSS file and add the following line in the beginning –
&lt;p&gt;
&lt;p&gt;
&lt;p align="left"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/f4/9.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
You should be done now.
&lt;p&gt;
&lt;p&gt;
&lt;p align="justify"&gt;Do a few testes running your application. Now that you have confirmed that your application works with Flex 4 SDK (mx set only) and Flash Builder 4 (not the right way though, I mean you are not using spark components, fx namespace yet), you can sell the idea of buying Flash Builder 4 for developer productivity and enhancements.&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p align="justify"&gt;Migrating the code to newer Flex 4 (not just via backward compatibility) would take time and can wait and go on as you do this step. &lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p align="justify"&gt;&lt;blockquote&gt;From Flash Builder 4 docs - In some scenarios you may want to use only the MX components that were available with Flex 3. For example, suppose you have an existing Flex 3 project and you do not want to introduce the new Spark components. But you do want to take advantage of features introduced with Flex 4 and Flash Builder 4, such as the new states syntax, compiler improvements, and other language features. In this scenario, you select the MX Only component set.&lt;/blockquote&gt;&lt;/p&gt;
&lt;p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-6093369958645665758?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/6093369958645665758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=6093369958645665758' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6093369958645665758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6093369958645665758'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/03/early-migrating-your-projects-from-flex.html' title='Early migrating your projects from Flex 3.x to Flex 4 (SDK) + FlexBuilder3 to FlashBuilder4 without many code changes'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-2058760652877652566</id><published>2010-03-25T15:55:00.002-04:00</published><updated>2010-03-25T16:04:09.073-04:00</updated><title type='text'>Which one do you like?</title><content type='html'>"Application Startpage" or "Start Page"? I like the later but i wish they were consistent.. doesn't matter :-p !!
&lt;p /&gt;
&lt;p /&gt;
&lt;p align="center"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/startpage.JPG"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-2058760652877652566?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/2058760652877652566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=2058760652877652566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2058760652877652566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2058760652877652566'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/03/which-one-do-you-like.html' title='Which one do you like?'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-8951752743195641130</id><published>2010-03-25T15:38:00.004-04:00</published><updated>2010-03-26T12:12:50.946-04:00</updated><title type='text'>Tired of Seeing CF Builder Start up page?</title><content type='html'>&lt;p align="justify"&gt;If you have just installed Coldfusion builder, you will be shown the coldfusion builder start page every time you quit and re-launch the IDE.


To get away with start page, Find the Menu option-&gt; Window-&gt;Preferences-&gt;Coldfusion-&gt;Startup-&gt;Show Welcome page on startup and uncheck it.


Flash Builder doesn't do this magic everytime you quit and relaunch, Keeps it simple. I like that. &lt;/p&gt;

&lt;p align="center"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/startuppagecf.JPG" /&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-8951752743195641130?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/8951752743195641130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=8951752743195641130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8951752743195641130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8951752743195641130'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/03/tired-of-seeing-cf-builder-start-up.html' title='Tired of Seeing CF Builder Start up page?'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-7700821225754335564</id><published>2010-03-03T13:22:00.003-05:00</published><updated>2010-03-03T13:35:23.036-05:00</updated><title type='text'>Some Un-reproducible errors with Flex</title><content type='html'>&lt;p align="justify"&gt;Here are some errors i've encountered working on the flex and these are not reproducible (rare to see..)&lt;/p&gt; 
&lt;br /&gt;
&lt;p align="center"&gt;&lt;b&gt;RSL Error when loading application (swf)&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;
&lt;a href="http://www.arunkumarm.com/codetouchblog/rsl_error.JPG" target="_blank"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/rsl_error.JPG" width="600" height="600" /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;span class="fullpost"&gt;
&lt;p align="center"&gt;&lt;b&gt;Hidden frame for tracking browser history opens up&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;
&lt;a href="http://www.arunkumarm.com/codetouchblog/hidden_frame.JPG" target="_blank"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/hidden_frame.JPG" width="600" height="600" /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;p align="center"&gt;&lt;b&gt;Famous error 2032&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;
&lt;a href="http://www.arunkumarm.com/codetouchblog/error2032.JPG" target="_blank"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/error2032.JPG" width="600" height="600" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-7700821225754335564?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/7700821225754335564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=7700821225754335564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/7700821225754335564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/7700821225754335564'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/03/some-un-reproducible-errors-with-flex.html' title='Some Un-reproducible errors with Flex'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-2839320367597740306</id><published>2010-03-02T23:42:00.012-05:00</published><updated>2010-03-03T00:34:45.698-05:00</updated><title type='text'>Random SOAP Faults in application (Part II - Finding the Cause of problem)</title><content type='html'>&lt;p align="justify"&gt;This is in continuation to my &lt;a href="http://ria.arunkumarm.com/2010/02/random-soap-faults-in-application-part.html" target="_blank"&gt;last post&lt;/a&gt; where some of our end users running low b/w were encountering random SOAP faults in the flex application. &lt;p&gt;
&lt;p&gt;
&lt;p align="justify"&gt;To debug the problem i have requested access to one of the end users machines to see what was going on. Spending good amount of time trying to work with the end users machine didnt give any clue though. I have found that while the end user recieves the SOAP Fault in the flex application, the response sent by the server for that specific request returned just fine with HTTP 200 OK with SOAP body and header looking just perfect in fiddler (http debugging tool). I didnt have a clue on what was going wrong when the response looks perfect. &lt;/p&gt;
&lt;p&gt;&lt;span class="fullpost"&gt;
&lt;p align="justify"&gt;Next, I took the SOAP body from the fiddler and started looking into the Flex framework, SOAP Decoder to analyze if something is wrong with the response body content, content lenght etc. After spending more time, Everything went through fine. The response was indeed getting decoded fine and everything looks perfect. Since these SOAP Faults were random and cannot be reproducible often, it was making the client frustrating putting us through difficult situations. Time is ticking without any solution yet.&lt;/p&gt;
&lt;p&gt;
&lt;p align="justify"&gt;I thought of the idea of trying to deploy a debug build for one release where i enable flex framework logging. I really thought this would give hints to what is happening internally.&lt;/p&gt;
&lt;p&gt;
&lt;p align="justify"&gt;Call this function in your creation complete of your flex application and it would enable debugging all the messaging, rpc logs in the framework.&lt;/p&gt;
&lt;p&gt;
&lt;textarea name="code" class="as3"&gt;
 private function setLogLevel():void 
  {
   var logTarget:TraceTarget = new TraceTarget();
   logTarget.level = LogEventLevel.ALL;
   logTarget.filters = ["mx.messaging.", "mx.rpc."]; 
   logTarget.includeDate = true;
   logTarget.includeTime = true;
   logTarget.includeCategory = true;
   logTarget.includeLevel = true;
   Log.addTarget(logTarget);             
  }
&lt;/textarea&gt;
&lt;p align="justify"&gt;This &lt;a href="http://livedocs.adobe.com/flex/3/html/help.html?content=logging_04.html" target="_blank"&gt;link&lt;/a&gt; would give you complete details on what to do next to enable logging in flashlog file. After I deployed the debug build into a custom environment, I have installed debug version of flash player on couple of end users machines, configured the flashlog settings and asked them to run their tests on this custom environment swf. I should say i was really lucky to get helpful hand from the end users who were willing to nail down this problem as there was no pattern for reproducing the problem.
&lt;/p&gt;
&lt;p&gt;
&lt;p align="justify"&gt;After couple of days, I got this error SOAP Fault hit once by the end user running the debug flex build. Without any delay i got the flashlog.txt on their machine and looked for the traces of the problem.

&lt;textarea name="code" class="xml"&gt;
2/17/2010 09:28:11.935 [INFO] mx.rpc.soap.Operation Creating SOAP Operation for getCacheUpdates
2/17/2010 09:28:11.935 [DEBUG] mx.rpc.soap.Operation Invoking SOAP operation getCacheUpdates
2/17/2010 09:28:11.935 [DEBUG] mx.rpc.soap.SOAPEncoder Encoding SOAP request envelope
2/17/2010 09:28:11.945 [DEBUG] mx.rpc.soap.SOAPEncoder Encoding SOAP request body
2/17/2010 09:28:11.945 [INFO] mx.messaging.Producer 'E62FB659-260E-FDD0-479B-DC8AAF12EE52' producer sending message 'FACB3D46-5745-E0B7-4F3C-DC8B26A9872C'
2/17/2010 09:28:11.945 [DEBUG] mx.messaging.Channel 'direct_http_channel' channel sending message:
(mx.messaging.messages::SOAPMessage)#0
  body = "&lt;SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
  &lt;SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"&gt;
    &lt;intf:getCacheUpdates xmlns:intf="http://webservices.com.webservices"&gt;
      &lt;adex xsi:type="xsd:string"&gt;&amp;lt;adex&amp;gt;
  &amp;lt;header&amp;gt;
    &amp;lt;status&amp;gt;true&amp;lt;/status&amp;gt;
    &amp;lt;operatorToken/&amp;gt;
    &amp;lt;terminalToken/&amp;gt;
  &amp;lt;/header&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;data name="cacheStatus" dataType="object"&amp;gt;&amp;lt;![CDATA[{"park":"02/16/2010 06:02:07 PM","parkPass":"01/01/2000 12:00:00 AM","country":"02/16/2010 06:02:07 PM","site":"02/16/2010 06:02:07 PM","loop":"02/16/2010 06:02:07 PM","ticketType":"02/16/2010 06:02:07 PM","discount":"02/16/2010 06:02:07 PM","location":"02/16/2010 06:02:07 PM","equipment":"02/16/2010 06:02:07 PM","campground":"02/17/2010 09:28:11 AM","asset":"01/01/2000 12:00:00 AM","state":"02/16/2010 06:02:07 PM","retail":"02/16/2010 06:02:07 PM"}]]&amp;gt;&amp;lt;/data&amp;gt;
    &amp;lt;data name="parkId" dataType="numeric"&amp;gt;&amp;lt;![CDATA[511]]&amp;gt;&amp;lt;/data&amp;gt;
    &amp;lt;data name="locationId" dataType="numeric"&amp;gt;&amp;lt;![CDATA[6558]]&amp;gt;&amp;lt;/data&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/adex&amp;gt;&lt;/adex&gt;
    &lt;/intf:getCacheUpdates&gt;
  &lt;/SOAP-ENV:Body&gt;
&lt;/SOAP-ENV:Envelope&gt;"
  clientId = "DirectHTTPChannel0"
  contentType = "text/xml; charset=utf-8"
  destination = "DefaultHTTP"
  headers = (Object)#1
  httpHeaders = (Object)#2
    SOAPAction = """"
  messageId = "FACB3D46-5745-E0B7-4F3C-DC8B26A9872C"
  method = "POST"
  recordHeaders = false
  timestamp = 0
  timeToLive = 0
  url = "http://xyz/webservices/com/webservices/CachingWebServices.cfc"
2/17/2010 09:28:12.505 [INFO] mx.messaging.Producer 'E62FB659-260E-FDD0-479B-DC8AAF12EE52' producer acknowledge of 'FACB3D46-5745-E0B7-4F3C-DC8B26A9872C'.
2/17/2010 09:28:12.505 [ERROR] mx.messaging.Producer 'E62FB659-260E-FDD0-479B-DC8AAF12EE52' producer fault for 'FACB3D46-5745-E0B7-4F3C-DC8B26A9872C'.

 
Its actually getting generated from Line 710 of mx.messaging.MessageAgent.as
&lt;/textarea&gt;
&lt;/p&gt;

&lt;p /&gt;

&lt;p align="justify"&gt;Without much help from flexcoders@yahoogroups or the adobe-flex-forums, I spent a lot of time trying to debug through the flex framework to identify the problem. After going through the framework code i have bottomlined it to the fact that the culprit was FIDDLER. The message is not reaching the flash player properly. &lt;/p&gt;
&lt;p /&gt;
&lt;p align="justify"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb250446(VS.85).aspx" target="_blank"&gt;This link&lt;/a&gt; on the msdn gives how fiddler works. Since fiddler acts like a proxy, messages go and come via fiddler. Unfortunately Client was running old version of fiddler...In some scenarios, even though fiddler recieves the response message fine HTTP 200 OK, it doesnt throw it back to IE properly (so FP doesnt recieve it fine). One of our QA person, running old version of fiddler encountered the problem and the cause was identified by running the same scenario 20 times, with fiddler on, Flex shows SOAP Fault events vs Without fiddler on, it never shows SOAP Faults.&lt;/p&gt;
&lt;p /&gt;
&lt;p align="justify"&gt;When the end users removed fiddler things started to work since last one week without any random SOAP Faults in the application. It looks to be problem with older version of fiddler 1.x and not with newer versions as we could not reproduce the problem in newer versions. I hope this saves someone's time. I would encourage running network sniffers instead of HTTP Debuggers for debugging purposes for these reasons&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;p align="justify"&gt;PS: The thoughts shared in this blog post are purely experimental based on what we encountered inhouse and may differ&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-2839320367597740306?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/2839320367597740306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=2839320367597740306' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2839320367597740306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2839320367597740306'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/03/random-soap-faults-in-application-part.html' title='Random SOAP Faults in application (Part II - Finding the Cause of problem)'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-6577643065073641271</id><published>2010-02-15T21:22:00.025-05:00</published><updated>2010-03-02T23:39:35.282-05:00</updated><title type='text'>Random SOAP Faults in the application - Part I (Avoiding HTTP 504 errors)</title><content type='html'>&lt;p align="justify"&gt;This is in continuation to my &lt;a href="http://ria.arunkumarm.com/2010/01/faulteventfault-night-mare-when-network.html" target="_blank"&gt;earlier post&lt;/a&gt; where some of our end users running low B/w were experiencing random soap fault events using our application. I dont have a solution outright but i have made attempts to minimize a lot of these errors&lt;/p&gt;
&lt;br /&gt;
&lt;pre&gt;
This is the description of the fault errors we were encountering -
  fault String = "SOAP Message cannot be decoded. Raw Response : null"
  fault Code = SOAP Decode Error
&lt;/pre&gt;
&lt;br /&gt;
&lt;p align="justify"&gt;So where do i start, what do i nail down? I knew, I wanted to first simulate a low bandwidth in my office machine. Talking to our network administrator was of little or no use (no offense!). I kept googling searching for tools that can reduce the network bandwidth only on my machine. Thanks to Vaideki, who found me this link that helped a lot (&lt;a href="http://www.raymond.cc/blog/archives/2008/02/22/restrict-or-limit-internet-download-and-upload-transfer-speed/" target="_blank"&gt;a link on raymond's blog archive&lt;/a&gt;) &lt;/p&gt;
&lt;br /&gt;&lt;span class="fullpost"&gt;
&lt;p align="justify"&gt;I downloaded Shunra Nimbus from this &lt;a href="http://volftp.tiscali.it/pub/pc/windows/winnt50/progs/communications/internet/nimbus.exe" target="_blank"&gt;URL&lt;/a&gt; that would exactly simulate a very low bandwidth only on my machine in the network. After installing it, all i have to do is select the speed i want (the reading is in kilobits or divide by 8 for kilobytes) and hit the play button. Browse to the URL http://www.speedtest.net to check the upload and download time.&lt;/p&gt;

&lt;p align="justify"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/nwthrottler.JPG"&gt;&lt;/img&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;p align="justify"&gt;Now that I have the lowest possible band-width set on my machine, I started to run my application with fiddler on, so i could monitor the http traffic going over the network. Due to very low speed, I have found some interesting results. The amount of time taken to load my swf file (which was around 1.5mb) was really high. I turned on RSLs to reduce the size of my actual swf. This bettered my download time but boom, errors... errors.. errors...
&lt;/p&gt;
&lt;br /&gt;
&lt;p align="justify"&gt;I was seeing them as HTTP 504 Errors in the fiddler. During the creationComplete() were were loading the WSDL's (multiple) and one or two will load fine and then rest will give HTTP 504 errors.
&lt;/p&gt;
&lt;br /&gt;
&lt;p align="justify"&gt;The problem was we were loading multiple wsdl's in a sequence. I changed the code to load these multiple wsdl's sequentially by waiting for LoadEvent.LOAD. After the first wsdl is loaded, it fires the LOAD event and then proceed with loading the second wsdl and so on... This completely got rid of the HTTP 504 errors when running very low bandwidth.. &lt;/p&gt;

&lt;br /&gt;
&lt;textarea name="code" class="as3"&gt;
  private function loadCachingWebservice():void
  {
   Globals.showFeedBack("Please Wait... Loading Caching Service");
   cachingService = new WebService();
   cachingService.requestTimeout = 0;
   cachingService.wsdl = applicationData.webServices + applicationData.wsdlCaching;
   cachingService.addEventListener(LoadEvent.LOAD,onCachingServiceLoadComplete);
   cachingService.addEventListener(FaultEvent.FAULT,onCachingServiceError);
   cachingService.loadWSDL();
   cachingService.showBusyCursor=true;   
  }
&lt;/textarea&gt;
&lt;br /&gt;
&lt;a href="http://www.arunkumarm.com/codetouchblog/504errors.JPG" target="_blank"&gt;&lt;img src="http://www.arunkumarm.com/codetouchblog/504errors.JPG" width="600" height="500"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-6577643065073641271?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/6577643065073641271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=6577643065073641271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6577643065073641271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6577643065073641271'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/02/random-soap-faults-in-application-part.html' title='Random SOAP Faults in the application - Part I (Avoiding HTTP 504 errors)'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-630146922931146190</id><published>2010-01-26T20:23:00.010-05:00</published><updated>2010-01-26T21:01:50.796-05:00</updated><title type='text'>FaultEvent.FAULT night-mare when network b/w is low / load is high on the server</title><content type='html'>I have a task ahead tomorrow to resolve why the flex code randomly hits FaultEvent.fault event handler when the network bandwidth is low and the load on the coldfusion server is high. Watching the HTTP requests through Fiddler (HTTP Debugger) confirms that the request and response packets go through fine without any soap faults / http errors. So the big question ahead is why does some users encounter fault events randomly instead of hitting the ResultEvent.RESULT when the response looks fine on the network http debugger? 

&lt;br /&gt;
&lt;p&gt;
Herez a glimpse of what we have -
&lt;/p&gt;
&lt;p&gt;
- We have a CF coldspring implementation exposing webservice operations.&lt;br /&gt;
- Flex app loads the wsdl's on load
&lt;/p&gt;
&lt;p&gt;
As the user logs in, we invoke operations on the webservices -
&lt;/p&gt;

 &lt;textarea name="code" class="mxml"&gt;
   &gt;&gt; psudo code 
 
   private function invokeWebservice():void
   {
      var ws:WebService = new Webservice();
      ws.wsdl = "http://host:port/path/NameOfWS.cfc?wsdl";
      ws.load();
      
      ... code removed / assume listen for LoadEvent.LOAD to wait for load complete

      ws.getCustomerName.addEventHandler(ResultEvent.RESULT, onGetCustomerName);
      ws.getCustomerName.addEventHandler(FaultEvent.FAULT, onGetCustomerFault);
      ws.getCustomerName("12345"); 
      // assume some customer id value is sent
      // assume event handlers are removed later
   }
 &lt;/textarea&gt;

 Our end users are running 0.45 Mbps upload and download speeds... &lt;span class="fullpost"&gt;Has anyone encountered something like this before? Whats going wrong is a big question for me.... WS code is just a wrapper on the bottom line HTTPService in as. Guess I get a chance to reproduce the scenario and i get to debug through the flex framework to see which piece is actually getting me into this..&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-630146922931146190?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/630146922931146190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=630146922931146190' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/630146922931146190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/630146922931146190'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2010/01/faulteventfault-night-mare-when-network.html' title='FaultEvent.FAULT night-mare when network b/w is low / load is high on the server'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-7656456519727452981</id><published>2009-07-26T19:42:00.002-04:00</published><updated>2009-07-26T22:46:57.753-04:00</updated><title type='text'>Does size matter?</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p align='justify'&gt;Gone are those days where we used to tightly stuff a lot of files &amp;amp; folders - setup's, dvd's copies, music collection and some movies into the 20GB HDDs.... These days everything comes in larger sizes. So is Flash Catalyst Beta 1. I was stunned to see the size of it after installation, (is it still a bug? or for real?) - 5.36GB? Wish the number is wrong... wow... &lt;/p&gt;    &lt;p&gt;&lt;img height='512' width='650' src='http://www.arunkumarm.com/codetouchblog/catalystsize/flashcatalyst_size.jpg'/&gt;&lt;br/&gt;  &lt;span class="fullpost"&gt;&lt;br /&gt; Wondering why its showing "Adobe Flash Catalyst" instead of "Adobe Flash Catalyst Beta 1", hmm... thats a bug... Icon overriding is also a bug...&lt;/span&gt;    &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-7656456519727452981?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/7656456519727452981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=7656456519727452981' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/7656456519727452981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/7656456519727452981'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/07/does-size-matter.html' title='Does size matter?'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-8513339631381246070</id><published>2009-07-25T16:24:00.001-04:00</published><updated>2009-07-25T16:24:44.582-04:00</updated><title type='text'>Auto doc snippet generation in IDE's...</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;What is Auto doc snippet generation? Its a very simple feature that i think should atleast be optionally be provided in every IDE tool to enhance overall project coding experience. Let me describe what this simple feature should do (&lt;em&gt;I am not aware of any tool/plugin which is already available so far&lt;/em&gt;)...&lt;/p&gt;    &lt;p&gt;     Just as you declare a variable, and just as you are done,  ';' should auto generate the doc skeleton, create a &lt;u&gt;&lt;em&gt;//TODO:write comment&lt;/em&gt;&lt;/u&gt; snippet auto-select it and get you ready to just type what  it is supposed to do.&lt;/p&gt;    &lt;p&gt;          &lt;img height='105' width='312' src='http://www.arunkumarm.com/codetouchblog/autodoc/autodoc1.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;     Just as you write a function and as you "}" (close) the function, it should auto generate the doc skeleton, create a &lt;u&gt;&lt;em&gt;//TODO:write comment&lt;/em&gt;&lt;/u&gt; snippet auto-select it and get you ready to just type what it is suppsed to do. As you change your function signature it should introspect existing doc skeleton and alter the argument types, return types etc. without having to manually go and edit it.&lt;/p&gt;    &lt;p&gt;     &lt;img height='101' width='560' src='http://www.arunkumarm.com/codetouchblog/autodoc/autodoc2.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;      &lt;img height='256' width='560' src='http://www.arunkumarm.com/codetouchblog/autodoc/autodoc3.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;    Just as you close a loop (ex: for, while etc.), it should auto generate the doc skeleton, create a &lt;u&gt;&lt;em&gt;//TODO:write comment &lt;/em&gt;&lt;/u&gt;snippet auto-select it and get you ready to just type what the logic is for..&lt;/p&gt;    &lt;p&gt;       &lt;img height='121' width='259' src='http://www.arunkumarm.com/codetouchblog/autodoc/autodoc4.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;    Just as you write an if condition, it should auto generate the doc skeleton, create a &lt;u&gt;&lt;em&gt;//TODO:write comment &lt;/em&gt;&lt;/u&gt;snippet auto-select it and get you ready to just type what this condition is for.. &lt;/p&gt;    &lt;p&gt;       &lt;img height='143' width='520' src='http://www.arunkumarm.com/codetouchblog/autodoc/autodoc5.jpg'/&gt;&lt;/p&gt;    &lt;p align='justify'&gt;     I've worked on a lot of projects but none of the projects were fully documented. Every developer has his/her own way of writing a piece of code. Even when you have a code monitoring tool, peer code review  process, strict code guidelines to follow on every project (which is predominently seen in product based companies than services based companies and a  less often in some companies who just want to get things working without having to bother much about spending time in writing code comments), there is always a scope of the code being written is left undocumented. There are some companies who enforce strict documentation on  the code written but at the end they see themselves doing just 50-60% of it overall. I would say there are atleast 70% or more of the larger audience who concentrate on putting their brain at work by writing the  actual code and get things working and leave their baby code undocumented unintensionally due to other work priorities. Developers may change and a new developer joining in is always targetted to face the tough time with the gaint code. Even the developer who wrote the code 4 months ago doesnt completely remember what's written unless he spends some time by going through the code again. &lt;/p&gt;    &lt;p align='justify'&gt;    How does a fully-documented code look like? Many people like to read the lines of code as they glance it and seeing a lot of comments written due to auto-doc snippet generation sometimes might disturb them. I do agree, but we can always have preference options to show/hide doc snippets, fold/unfold doc snippets.. everything is possible. As the application code grows larger and larger with tons of frameworks out there, the code is crying out loud - "If you dont document me now, i'll kill you or someone in the long run"... &lt;br/&gt;                  &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-8513339631381246070?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/8513339631381246070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=8513339631381246070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8513339631381246070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8513339631381246070'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/07/auto-doc-snippet-generation-in-ide.html' title='Auto doc snippet generation in IDE&amp;#39;s...'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-5602591035442510064</id><published>2009-07-22T22:04:00.001-04:00</published><updated>2009-07-22T22:04:14.007-04:00</updated><title type='text'>Life Cycle Data Services 3 - New !!</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='justify'&gt;      &lt;p&gt;With Adobe's showering  a bunch of products into beta (almost at the same time), CF9, CFBuilder, FlashBuilder, FlashCatalyst, Flex4, LCDS3... wow..thats a lot.... Yesterday i  had a chance to look at the &lt;a href='http://labs.adobe.com/technologies/livecycle_dataservices3/videos/'&gt;video tutorials &lt;/a&gt;posted on the labs for the new lcds 3 beta features. Adobe's Romania team scores high in delivering these server spice into flex. From my LCDS 2.5+ experience, this was really a new ball game. Here are some of the highlights -&lt;/p&gt;      &lt;ul&gt;        &lt;li&gt;Model driven development brought into Flex with Fiber  (language?)... Model View perspective in flash builder (earlier flex builder), create models from the RDS View connected to db from within flash builder, create services for the operations, generating model driven forms from within flash builder to quick test your model &lt;/li&gt;        &lt;li&gt;Easy creation of filters from within flash builder&lt;/li&gt;        &lt;li&gt;Annotations&lt;/li&gt;        &lt;li&gt;localization, validation, data formats&lt;/li&gt;        &lt;li&gt;Reliable messaging - this is one of the best features. Having AdvancedChannelSet, AdvancedMessaging This feature ensures that messages sent over the wire do not get dropped out due to network fluctuations (on and off). Before it tries to give you a feedback saying message sending error it does try to resend it for some time (configured) so it gets around the problem of fluctuating networks.&lt;/li&gt;        &lt;li&gt;Message Throttling - Video streams for bad network are always hit. With this feature, you have more control on how your data messages can be handled with care to ensure to fit it in your network. You have options to pamper the inbound messages and outbound messages. InBound Messages have policy options - ERROR, IGNORE, NONE and OutBound Messages have policy to ERROR, BUFFER, NONE.. &lt;/li&gt;      &lt;/ul&gt;      &lt;p&gt;Its amazing to see the new developments...  &lt;br/&gt;        &lt;/p&gt;    &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-5602591035442510064?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/5602591035442510064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=5602591035442510064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5602591035442510064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5602591035442510064'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/07/life-cycle-data-services-3-new.html' title='Life Cycle Data Services 3 - New !!'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-4723162350156943473</id><published>2009-07-22T21:24:00.001-04:00</published><updated>2009-07-22T21:25:05.569-04:00</updated><title type='text'>Converting AS Objects to XML and reading the same XML into AS Objects...</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p align='justify'&gt;One of the requirements i had was to write down the Action Script object returned from the Coldfusion webservice call into a flat xml file. This was a temporary solution i had to provide seamless integration between flex app and AIR app..&lt;/p&gt;      &lt;p align='justify'&gt;I had a huge bunch of query object data returned through CF webservice call and i needed to persist the data into an xml file without having to write a whole bunch of code to navigate to each and every property of the object (introspect)...  &lt;/p&gt;      &lt;p&gt;    This simple code here lets you write the crude CF returned object into a nice XML &lt;/p&gt;      &lt;p&gt;&lt;img src='http://www.arunkumarm.com/codetouchblog/toxmlfromxml/toxml.jpg' width='670' height='282'/&gt;&lt;/p&gt;      &lt;p&gt;   And this code below converts the XML into an action script object that can be used during your persistence..&lt;/p&gt;      &lt;p&gt;&lt;img src='http://www.arunkumarm.com/codetouchblog/toxmlfromxml/fromxml.jpg' width='734' height='130'/&gt;&lt;br/&gt;          &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-4723162350156943473?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/4723162350156943473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=4723162350156943473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4723162350156943473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4723162350156943473'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/07/converting-as-objects-to-xml-and.html' title='Converting AS Objects to XML and reading the same XML into AS Objects...'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-5835129974541502533</id><published>2009-07-22T21:08:00.001-04:00</published><updated>2009-07-22T21:08:48.766-04:00</updated><title type='text'>Invoking JavaScript from Flex AIR App (in FlexBuilder)</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;This is with FlexBuilder3. If you have a lot of javascript source files made on another project of yours (presuming to have used another technology like CF, .NET, Java) and you are intending to use those javascript source files while porting to Flex based AIR Application, then here is a sample to load all your javascripts and invoke the functions from With in the Flex application.&lt;/p&gt;    &lt;p&gt;&lt;em&gt;"&lt;strong&gt;&lt;font color='#FF0000'&gt;Note:&lt;/font&gt;&lt;/strong&gt;&lt;/em&gt;&lt;strong&gt;&lt;font color='#FF0000'&gt; Adobe AIR currently does not support the ExternalInterface   class&lt;/font&gt;&lt;/strong&gt;" is clearly indicated in the API. So whats the alternative to this.&lt;/p&gt;    &lt;p&gt;The API link for &lt;a href='http://livedocs.adobe.com/flex/3/langref/'&gt;ExternalInterface.as&lt;/a&gt; (Search in AllClasses for ExternalInterface.as) also clearly indicates the following are possible:  &lt;/p&gt;    &lt;p&gt;From ActionScript, you can do the following on the HTML page: &lt;/p&gt;    &lt;ul&gt;      &lt;li&gt;Call any JavaScript function. &lt;/li&gt;      &lt;li&gt;Pass any number of arguments, with any names. &lt;/li&gt;      &lt;li&gt;Pass various data types (Boolean, Number, String, and so on). &lt;/li&gt;      &lt;li&gt;Receive a return value from the JavaScript function. &lt;/li&gt;    &lt;/ul&gt;    &lt;p&gt;So What we are going to do is &lt;strong&gt;&lt;font color='#009900'&gt;"Load a dummy html page carrying links to all the javascript files to be invoked from the Flex AIR Application"&lt;/font&gt;&lt;/strong&gt;...&lt;/p&gt;    &lt;p&gt;Step 1: Get your js files into a directory &lt;/p&gt;    &lt;p&gt;&lt;img height='297' width='228' src='http://www.arunkumarm.com/codetouchblog/jsfiles/jsfiles.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;Step 2: Create a dummy html file and include your scripts as here &lt;/p&gt;    &lt;p&gt;&lt;img height='239' width='874' src='http://www.arunkumarm.com/codetouchblog/jsfiles/jsfiles_2.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;Step 3: use &amp;lt;mx:HTML /&amp;gt; tag of Adobe AIR to reference it in your app &lt;/p&gt;    &lt;p&gt;&lt;img height='22' width='700' src='http://www.arunkumarm.com/codetouchblog/jsfiles/jsfiles_1.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;Step 4: On Creation complete handler of your Adobe AIR application, load the html file which contains your js files, so you can reference it later on to invoke javascript functions... &lt;/p&gt;    &lt;p&gt;&lt;img height='80' width='465' src='http://www.arunkumarm.com/codetouchblog/jsfiles/jsfiles_3.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;Step 5: Use the reference as below and invoke a javascript function from within flex. You can pass arguments to the js function and retrieve return values as well. &lt;/p&gt;    &lt;p&gt;&lt;img height='79' width='554' src='http://www.arunkumarm.com/codetouchblog/jsfiles/jsfiles_4.jpg'/&gt;&lt;br/&gt;    &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-5835129974541502533?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/5835129974541502533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=5835129974541502533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5835129974541502533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5835129974541502533'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/07/invoking-javascript-from-flex-air-app.html' title='Invoking JavaScript from Flex AIR App (in FlexBuilder)'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-8842142179125645585</id><published>2009-06-30T14:29:00.005-04:00</published><updated>2009-07-22T21:13:10.835-04:00</updated><title type='text'>Reading .sol (SharedObjects) created by Browser Flex App in a new AIR Application - Seamless integration? Web &amp; Desktop?</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p align='justify'&gt;    One of the requirements was to provide seamless integration between the browser flex application serving the client needs when the network is on vs an AIR Application as an offline system when the network turns off. But the requirement isnt straight as you think. What it says is, When network is connected the end user will be using flex browser application by navigating to the URL which downloads a lot of data on to the client machine from the server which periodically gets updated based on the data-change on the server. This is stored as client side SharedObjects through the browser ran flex app. Now when the network turns off, the end user would launch the offline system that should read through earlier created sharedobjects while network was on and work through it. AIR App should also be able to write a shared object containing data required to be parsed through the browser flex app when launched (when network is back)... &lt;/p&gt;    &lt;p align='justify'&gt;    This kind of sounds so wierd to me. After hearing the requirement, i was like WHAT?? But then i started to see through different ways of achieving it. With Browser Sandbox Security, browser flex app always can get hold of SO (Shared objects) created through SharedObject.getLocal(). Even if we were to understand and agree to one common location that AIR Could understandably read, keeping the location parameter excluded for a whole lot of argument... The Important thing is to consider serialize and de-serialize a FileStream read ByteArray into AS Objects that can be natively used in the code. Well, more to that is the SharedObjects written through the browser flex app could also carry complex data structures which could carry more information rather than a simple data-&amp;gt;name/value &lt;/p&gt;    &lt;p&gt;    While doing the research, i went through a  lot of google search - .minerva was exactly doing what i was looking for but its not open to go through the bits of it and tweak to get it working !! &lt;/p&gt;    &lt;ul&gt;      &lt;li&gt; &lt;a href='http://download.macromedia.com/pub/labs/amf/amf3_spec_121207.pdf%20'&gt;Link to AMF 3 Specification document&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a target='_blank' href='http://web.archive.org/web/20040603100453/chattyfig.figleaf.com/flashcoders-wiki/index.php?SharedObjectFile'&gt;Format of a Shared Object&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a target='_blank' href='http://osflash.org/documentation/amf%20'&gt;Open Source Flash&lt;/a&gt;  &lt;/li&gt;      &lt;li&gt;&lt;a target='_blank' href='http://blog.webdeely.com/2009/03/storing-custom-strongly-typed-amf-files-for-air-apps'&gt;Storing Custom AMF Objects for AIR App Storage&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;        &lt;p&gt;&lt;a target='_blank' href='http://troyworks.com/blog/2007/11/03/using-bytearray-to-serialize-as3-classes-for-air-web-and-everywhere/'&gt;Reading ByteArrays either from Web or AIR app&lt;/a&gt; (I couldnt connect through it well)&lt;/p&gt;      &lt;/li&gt;      &lt;li&gt; &lt;a href='http://livedocs.adobe.com/flex/3/html/help.html?content=ByteArrays_2.html'&gt;Reading and Writing a ByteArray - Flex Docs (on zip file   formats)&lt;/a&gt; &amp;amp; &lt;a href='http://help.adobe.com/en_US/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7d53.html'&gt;also here&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a target='_blank' href='http://blog.coursevector.com/minerva'&gt;AIR App Named .minerva&lt;/a&gt; (this is exactly what i was intending to do, but after installing .minerva i didnt open up some of my other .sol files even though they were good) &lt;/li&gt;      &lt;li&gt; &lt;a href='http://www.amfphp.org/'&gt;Link to AMF-PHP Open Source porting link&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;        &lt;p&gt;&lt;a target='_blank' href='http://www.yuiblog.com/blog/2009/06/23/flash-sol/'&gt;Persistence Storage with .SOL (shared objects)&lt;/a&gt;, a just like that content.&lt;/p&gt;      &lt;/li&gt;      &lt;li&gt;&lt;a target='_blank' href='http://help.adobe.com/en_US/AIR/1.5/jslr/flash/net/SharedObject.html'&gt;SharedObject API doc&lt;/a&gt;&lt;/li&gt;      &lt;li&gt; &lt;a href='http://code.google.com/p/amf-serializer/downloads/list'&gt;AMF Serializer/deserializer for  java/flex - Google Code&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a target='_blank' href='http://www.graniteds.org'&gt;Granite DS&lt;/a&gt; (what they claim is alternative to LCDS)&lt;/li&gt;      &lt;/ul&gt;    &lt;p&gt;Here is a sample code demoing the problem:&lt;/p&gt;    &lt;p&gt;  &lt;/p&gt;    &lt;p&gt;&lt;br/&gt;    &lt;/p&gt;

Browser Flex App creates a shared object (typed ClazzTest.as containing two public variables value1 and value2 of type string) &lt;p /&gt; &lt;p /&gt;

&lt;textarea class="mxml" name="code"&gt;
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"&gt;
 
 &lt;mx:Script&gt;
  &lt;![CDATA[
   import com.arun.ClazzTest;
   import flash.net.registerClassAlias;
   
   private function generateWebFlexSharedObjects():void
   {
    var clazzTest:ClazzTest = new ClazzTest();
    clazzTest.value1 = 'Value1';
    clazzTest.value2 = 'Value2';    
    registerClassAlias('com.arun.ClazzTest',ClazzTest);         
     
    var so:SharedObject = SharedObject.getLocal("cachename");
    var b:ByteArray = new ByteArray();
    b.objectEncoding = ObjectEncoding.AMF3;
    b.writeObject(clazzTest);
    so.data.clazzTest = clazzTest;
    so.flush(); 
   }
   
  ]]&gt;
 &lt;/mx:Script&gt;

 &lt;mx:Button label="Generate SO" click="generateWebFlexSharedObjects()"/&gt;
&lt;/mx:Application&gt;

&lt;/textarea&gt;

&lt;p /&gt;&lt;p /&gt;

AIR App code that tries to read the shared object created by the browser flex app above.. (for now assume that the object location is hardcoded)

&lt;p /&gt;&lt;p /&gt;
&lt;textarea name="code" class="mxml"&gt;
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="500" height="422"&gt;
 &lt;mx:Script&gt;
  &lt;![CDATA[
   import flash.utils.getQualifiedClassName;
   import flash.utils.describeType;
   import mx.controls.Alert;
   import mx.utils.ObjectUtil;
   
   private function readBrowserFlexCache():void
   {
    var path:String = "C:\\Documents and Settings\\amadas\\Application Data\\Macromedia\\Flash Player\\#SharedObjects\\5RP3MMUQ\\#localhost\\BrowserFlexSharedObjects\\bin-debug\\BrowserFlexSharedObjects.swf\\cachename.sol";
    var solFile:File = new File(path);
    txtOutput.htmlText = 'File Exists ? ' + solFile.exists + '\n';
    
    var fileStream:FileStream = new FileStream();
    fileStream.openAsync(solFile, FileMode.READ);
    txtOutput.htmlText += 'File Bytes Available : ' + fileStream.bytesAvailable + '\n';
    
    var bytes:ByteArray = new ByteArray();
    fileStream.readBytes(bytes, 0, fileStream.bytesAvailable);    
    txtOutput.htmlText += 'Bytes Read = ' + bytes.bytesAvailable; 
    bytes.objectEncoding = ObjectEncoding.AMF3;    
    //trace(describeType(bytes.readObject()).toXMLString());
    //var objInfo:Object = ObjectUtil.getClassInfo(bytes);
    var obj:Object = bytes.readObject();

    //trace(getQualifiedClassName(obj));
    
    if(obj != null)
    {
     Alert.show('Object retrieved !! ');
    }    
    fileStream.close();
   }   
   
  ]]&gt;
 &lt;/mx:Script&gt;
 
 &lt;mx:Button label="Read SO" click="readBrowserFlexCache()"  x="23" y="30" width="146"/&gt;
 &lt;mx:TextArea x="23" y="80" width="452" height="259" id="txtOutput"/&gt;
 
&lt;/mx:WindowedApplication&gt;

&lt;/textarea&gt;

&lt;p /&gt;&lt;p /&gt;

The above AIR App code doesnt work. Its just the way i wish it would. But i believe we need to go through the entire signature of SharedObject and read the bytestream in the way SharedObject is defined as an entirety like header, body etc.

I just looked at the Serializer and Deserializer in AMF-PHP and that just gives me some idea. Trying to do this entirely might take a long time than to get it just working quickly... I am still on a hunt !!

------------------------------------------

If someone is looking out for a quick solution where in you wont have enough time to write an AMF object parser, you can follow my quick solution. We lowered the IE settings to allow scripting, there by i invoke a javascript function which writes the data to the flat xml file in the client machine from the flex application through ActiveXObject(), and these flat .xml files are read by the AIR app later on. Atleast this seems to work fine for me until i converge on a right solution !!

&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-8842142179125645585?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/8842142179125645585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=8842142179125645585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8842142179125645585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8842142179125645585'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/06/reading-sol-sharedobjects-created-by.html' title='Reading .sol (SharedObjects) created by Browser Flex App in a new AIR Application - Seamless integration? Web &amp;amp; Desktop?'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-181184640985272953</id><published>2009-06-11T18:44:00.005-04:00</published><updated>2009-06-11T19:05:59.110-04:00</updated><title type='text'>Flashplayer ScriptTimeOutError, A Script has executed longer than 15 seconds</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;While doing Load testing of the flex application we've developed, we hit upon this scenario where our test load data was so huge that optimizing DB queries, webservice logic, client logic took us more than 60 seconds which is the maximum timeout limit Flashplayer can be increased to. &lt;/p&gt;    &lt;p&gt;To find a solution to the problem, I have googled around and found some interesting articles. &lt;/p&gt;    &lt;ul&gt;      &lt;li&gt;&lt;a href='http://blog.justgreat.nl/2007/08/24/joy-with-the-script-timeout-period/comment-page-1/'&gt;Arno Van Oordt&lt;/a&gt; &lt;a href='http://blog.justgreat.nl/2007/08/24/joy-with-the-script-timeout-period/comment-page-1/'&gt;(Joy with script timeout period)&lt;/a&gt;, &lt;/li&gt;      &lt;li&gt;&lt;a target='_blank' href='http://www.mail-archive.com/flexcoders%40yahoogroups.com/msg19092.html'&gt;flex coders emailing list archives&lt;/a&gt;, &lt;a href='http://groups.google.com/group/flex_india/browse_thread/thread/148e9e549f4229b5'&gt;and more&lt;/a&gt;, &lt;/li&gt;      &lt;li&gt;&lt;a target='_blank' href='http://www.nntpnews.net/f3488/flex-scripttimelimit-2845346/'&gt;some other forums&lt;/a&gt;, &lt;/li&gt;      &lt;li&gt;&lt;a target='_blank' href='http://www.switchonthecode.com/tutorials/flex-tutorial-an-asynchronous-jpeg-encoder'&gt;Tallest on switchonthecode&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a target='_blank' href='http://help.adobe.com/en_US/AS3LCR/Flash_10.0/index.html'&gt;Flash Player API for ScriptTimeOutError&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;etc..&lt;/li&gt;      &lt;/ul&gt;    &lt;p&gt;When the load data is so huge, and you are tired of optimizing  code just to fit in the 60 seconds time intervel before the timeout error is thrown by flash player... I tried to workaround it with a solution that will run for enough time without freezing / breaking your load data... &lt;/p&gt;    &lt;p&gt;&lt;br/&gt;    &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

Here is the sample Flex code that would throw the Flashplayer script timeout error. &lt;p /&gt;

&lt;textarea class="mxml" name="code"&gt;
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"&gt;

      &lt;mx:Script&gt;
            &lt;![CDATA[
                  private var i:Number = 0;
                  private function startInfinite():void
                  {
                        while(++i &gt; 0)
                        {
                              //txtArea.htmlText = i + '\n';
                        }
                  }
            ]]&gt;
      &lt;/mx:Script&gt;

      &lt;mx:VBox&gt;
            &lt;mx:Button label="hang me" click="startInfinite()" /&gt;
            &lt;mx:TextArea id="txtArea" /&gt;
      &lt;/mx:VBox&gt;
&lt;/mx:Application&gt;

&lt;/textarea&gt;

&lt;p&gt;&lt;/p&gt;&lt;span class="fullpost"&gt;

Error message - &lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;img src="http://www.arunkumarm.com/blogphotos/flex/fp_timeout.JPG"&gt;&lt;/img&gt;
&lt;p&gt;&lt;/p&gt;

My Solution to this problem is to workaround by giving flashplayer a breathing time. This is however not a full-fledged code but would completely give you an idea on what i am trying to achieve.

The below code would run a timer for say 100 milli-seconds and execute your piece of code which you think is consuming more time... say if you are iterating over 10,000 items with a lot of data or something similar... This solution would run a timer and call it over and over until your job execution is done, when you delete the listener and proceed further with your logic. This way flashplayer break due to heavy load is taken care of. Flash player would get a breathing time to perform any UI operations if any meanwhile. In my actual code at work, i display a popup modal window before the timeconsuming operation begins that displays - "Please wait, while we are processing the data", and i remove the modal dialog once the entire process is done. This way end user feels that he has a feedback from the app and even if it were to take a bit more time, this solution will scale for you even if your load were to increase in more numbers...

&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;

See the Solution here (Iterating based on a timer until execution is complete)...

&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;

&lt;textarea class="mxml" name="code"&gt;
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"&gt;
 &lt;mx:Script&gt;
  &lt;![CDATA[
   private var i:Number=0;
   private var mytimer:Timer=new Timer(100);
   private var isCodeRunning:Boolean=true;
    private var testIterateCount:Number = 0;

   private function timeBasedLoading():void
   {
    isCodeRunning=false;
    mytimer.addEventListener(TimerEvent.TIMER, startInfinite, false, 0, true);
    mytimer.start();
   }

   private function startInfinite(event:TimerEvent):void
   {
    try
    {
     if (!isCodeRunning)
     {
      isCodeRunning=true;

      while (++i &gt; 0)
      {
       //txtArea.htmlText = i + '\n';
      }
     }
    }
    catch (e:ScriptTimeoutError)
    {
     isCodeRunning=false;

     //trace(e);    
     // ScriptTimeoutError: Error #1502: A script has executed for longer 
     // than 15 seconds
     testIterateCount++;

     //Arun:Break your logic after 5 iterations,
     //just a test...

     if(testIterateCount==5)  
     {
       mytimer.stop();
       mytimer.removeEventListener(TimerEvent.TIMER, startInfinite); 
     }
     txtArea.htmlText+=i + '\n';
    }
   }
  ]]&gt;
 &lt;/mx:Script&gt;

 &lt;mx:VBox&gt;
  &lt;mx:Button label="hang me"
       click="timeBasedLoading()"/&gt;
  &lt;mx:TextArea id="txtArea"/&gt;
 &lt;/mx:VBox&gt;
&lt;/mx:Application&gt;

&lt;/textarea&gt;


&lt;/span&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-181184640985272953?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/181184640985272953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=181184640985272953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/181184640985272953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/181184640985272953'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/06/flashplayer-scripttimeouterror-script.html' title='Flashplayer ScriptTimeOutError, A Script has executed longer than 15 seconds'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-684536990813156006</id><published>2009-06-06T22:18:00.002-04:00</published><updated>2009-06-11T14:36:25.637-04:00</updated><title type='text'>First Look at Flash Builder 4 (Beta1)</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;I wanted to list down my first feel of launch of FlashBuilder4-Beta1 and how it made different from FlexBuilder3. This post is not intended to list down all the differences between FlexBuilder4Beta1 and FlashBuilder3 but however, it is only intended to get the FIRST FEEL DIFFERENCE of your regular FlexBuilder3 and FlashBuilder4 Beta1 &lt;/p&gt;    &lt;p&gt;Name Change of FlexBuilder perspective to Flash - (&lt;u&gt;Flash vs Flex Development&lt;/u&gt;, &lt;u&gt;Flash Debug vs Flex Debugger&lt;/u&gt;, &lt;u&gt;Flex Profiling vs Flash Profile&lt;/u&gt;) &lt;/p&gt;    &lt;p&gt;&lt;img height='434' width='369' src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/launch.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;New Start Page &lt;/p&gt; &lt;span class="fullpost"&gt;   &lt;p&gt;&lt;a target='_blank' href='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/launch2.jpg'&gt;&lt;img height='360' width='600' src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/launch2.jpg'/&gt;&lt;/a&gt;First thing, you do is to right click on the Package Explorer and create a new project. As you rightclick you see new entry "Execute FlexUnit Tests". FlexUnit integrated into flex builder... New-&amp;gt;Test Case Class, New-&amp;gt; Suite Class are also new entries. &lt;/p&gt;    &lt;p&gt;&lt;img height='522' width='440' src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/contextmenus.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;New Panels - Data/Services, Network Monitor... &lt;/p&gt;    &lt;p&gt;&lt;img height='250' width='405' src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/panels.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;New Data-Connect wizards... &lt;/p&gt;    &lt;p&gt;&lt;img height='289' width='458' src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/new_connect_wizards.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;Blaze DS (integrated option) &lt;/p&gt;    &lt;p&gt;&lt;a target='_blank' href='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/new_flex_proj_wizard.jpg'&gt;&lt;img height='637' width='496' src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/new_flex_proj_wizard.jpg'/&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Fx icon changed to &lt;em&gt;f&lt;/em&gt; with new Flex 4 libraries &lt;/p&gt;    &lt;p&gt;&lt;img height='737' width='496' src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/new_libs.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;New Enhanced Package Explorer, Shows package view, Flex4 lib.... &lt;/p&gt;    &lt;p&gt;&lt;img height='248' width='650' src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/newproj.jpg'/&gt;&lt;/p&gt;    &lt;p&gt; AS Doc as soon as you try to open up type on the tag name through the code hinting dialog. ASDoc panel which shows docs. Its one of the best features that has been missing for a long time (ofcourse driven from java perspective - eclipse) &lt;/p&gt;    &lt;p&gt;&lt;img height='416' width='521' src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/asdoc.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;mx:script&amp;gt; changed to &amp;lt;fx:script&amp;gt; &lt;/p&gt;    &lt;p&gt;&lt;img height='237' width='477' src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/fxscript.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;Auto-Generation of event handlers from within flex builder...auto-generated click event handler for the button.. &lt;/p&gt;    &lt;p&gt; &lt;img height='336' width='597' src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/autogenerated_event_handler.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;AsDoc comment.... &lt;/p&gt;    &lt;p&gt;&lt;img height='321' width='639' src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/asdoc2.jpg'/&gt;&lt;/p&gt;    &lt;p&gt;and a lot more.... &lt;br/&gt;                              &lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-684536990813156006?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/684536990813156006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=684536990813156006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/684536990813156006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/684536990813156006'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/06/first-look-at-flash-builder-4-beta1.html' title='First Look at Flash Builder 4 (Beta1)'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-416162537119876812</id><published>2009-06-06T20:10:00.002-04:00</published><updated>2009-06-11T14:47:49.824-04:00</updated><title type='text'>Installing FlashBuilder4 Beta1 (Earlier FlexBuilder)</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Step by Step - Installing Flash Builder Beta 1 (Earlier Flex Builder)      &lt;p&gt; &lt;/p&gt;    &lt;p&gt;&lt;img src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/inst.jpg' width='456' height='208'/&gt;&lt;/p&gt;    &lt;p&gt;&lt;img src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/inst2.jpg' width='522' height='370'/&gt;&lt;/p&gt;  &lt;span class="fullpost"&gt;  &lt;p&gt;&lt;img src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/inst3.jpg' width='620' height='439'/&gt;&lt;/p&gt;    &lt;p&gt;&lt;img src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/inst4.jpg' width='633' height='449'/&gt;&lt;/p&gt;    &lt;p&gt;&lt;img src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/inst4_1.jpg' width='633' height='449'/&gt;&lt;/p&gt;    &lt;p&gt;&lt;img src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/inst5.jpg' width='423' height='206'/&gt;&lt;/p&gt;    &lt;p&gt;&lt;img src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/inst6.jpg' width='633' height='449'/&gt;&lt;/p&gt;    &lt;p&gt; &lt;/p&gt;    &lt;p&gt;&lt;img src='http://www.arunkumarm.com/blogphotos/flex/installfb4/fb1/inst7.jpg' width='633' height='449'/&gt;&lt;/p&gt;    &lt;p&gt;&lt;br/&gt;                    &lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-416162537119876812?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/416162537119876812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=416162537119876812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/416162537119876812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/416162537119876812'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/06/installing-flashbuilder4-beta1-earlier.html' title='Installing FlashBuilder4 Beta1 (Earlier FlexBuilder)'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-7745444717072905320</id><published>2009-06-02T22:39:00.002-04:00</published><updated>2009-06-11T14:49:37.556-04:00</updated><title type='text'>Flex SDK 4, Flash Builder 4, Flash Catalyst (earlier Thermo) - Beta1 Launch</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p align='justify'&gt;     Well, old news first - &lt;a href='http://labs.adobe.com/technologies/flex4sdk/'&gt;Flex SDK 4&lt;/a&gt;, &lt;a href='http://labs.adobe.com/technologies/flashbuilder4/'&gt;Flash Builder 4&lt;/a&gt; (Earlier Flex Builder 3) and &lt;a href='http://labs.adobe.com/technologies/flashcatalyst/'&gt;Flash Catalyst&lt;/a&gt; (Earlier called Thermo) are now available on labs.adobe.com for BETA1. I've atleast waited for this release since long. With Flash Catalyst, Adobe brings a lot to the community in terms of new roles - Flex Designer, Sr. Flex Designer, Flex Designer - Architect etc. - new opportunities adding new jobs to the market sunk in recession and above all, it takes Flex/Flash to a whole new dimension enchanting that no two applications in the market should look alike with the default halo theme... Explore the richness of each application, design appealing UIs that make your application uniquely shiny, and extra-ordinary... A lot is already said about already about whats new and all... &lt;span class="fullpost"&gt;some of them i came across are - &lt;a href='http://sujitreddyg.wordpress.com/flash-builder-4/'&gt;sujit&lt;/a&gt;, &lt;a href='http://www.adobe.com/devnet/flex/articles/flex4builder_whatsnew.html'&gt;tim buntel &lt;/a&gt;, &lt;a href='http://www.adobe.com/devnet/flex/articles/flex4sdk_whatsnew.html'&gt;matt chotin&lt;/a&gt;, &lt;a href='http://opensource.adobe.com/wiki/display/flexsdk/Gumbo'&gt;whats new flex 4 - dev specs with examples&lt;/a&gt;, &lt;a target='_blank' href='http://www.insideria.com/2009/06/overview-of-flex-4-gumbo.html'&gt;sean moore&lt;/a&gt; etc.&lt;/p&gt;    &lt;p align='justify'&gt;&lt;br/&gt;      &lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-7745444717072905320?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/7745444717072905320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=7745444717072905320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/7745444717072905320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/7745444717072905320'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/06/flex-sdk-4-flash-builder-4-flash.html' title='Flex SDK 4, Flash Builder 4, Flash Catalyst (earlier Thermo) - Beta1 Launch'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-4453123142689662098</id><published>2009-04-13T14:58:00.002-04:00</published><updated>2009-06-11T14:51:01.128-04:00</updated><title type='text'>Slide Move Effects to your Flex Components</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;I was just playing around with a simple effect in flex that gives you a slider feeling... how you slide your closet? This is pretty simple and many starters would already know. I was just playing with it to see how i can create dynamic elements and have those dynamically created elements play this effect.&lt;/p&gt;    

&lt;p&gt;Simple Plain code&lt;/p&gt;

&lt;p&gt; 
&lt;pre name="code" class="mxml"&gt;
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"&gt;

 &lt;mx:Move duration="650" id="loopNavigator"/&gt;

 &lt;mx:Button label="Next" click="onClickNext()" x="727" y="215"/&gt;
 &lt;mx:HBox id="panelContainer" showEffect="loopNavigator" width="500" height="500" paddingLeft="50" paddingTop="40" paddingBottom="40" paddingRight="20" horizontalGap="55" horizontalScrollPolicy="off" x="219"&gt;
  &lt;mx:Panel id="panel1" width="400" height="400"&gt;
   &lt;mx:Text text="panel1" /&gt;
  &lt;/mx:Panel&gt;
  &lt;mx:Panel id="panel2" width="400" height="400"&gt;
   &lt;mx:Text text="panel2" /&gt;
  &lt;/mx:Panel&gt;
  &lt;mx:Panel id="panel3" width="400" height="400"&gt;
   &lt;mx:Text text="panel3" /&gt;
  &lt;/mx:Panel&gt;
  &lt;mx:Panel id="panel4" width="400" height="400"&gt;
   &lt;mx:Text text="panel4" /&gt;
  &lt;/mx:Panel&gt;
 &lt;/mx:HBox&gt;
 &lt;mx:Button label="Previous" click="onClickPrevious()" x="129" y="215"/&gt;
 
&lt;/mx:Application&gt;

&lt;/pre&gt;

&lt;/p&gt;    

&lt;span class="fullpost"&gt;

&lt;p&gt; 

 &lt;pre class="as3" name="code"&gt;
      private function onClickNext():void
      {
       var xByValue:Number = -455;
       loopNavigator.xBy = xByValue; 
       
       loopNavigator.play([panel1, panel2, panel3, panel4]);
      }
      
      private function onClickPrevious():void
      {
       var xByValue:Number = 455;
       loopNavigator.xBy = xByValue; 
       
       loopNavigator.play([panel1, panel2, panel3, panel4]);
      }
&lt;/pre&gt;
&lt;/p&gt;  

&lt;p&gt;This is how the output would look like (crude form) &lt;/p&gt;

&lt;p&gt; 
&lt;embed src='http://www.arunkumarm.com/flexapps/SliderMoveApp.swf' height='248' width='388' type='application/x-shockwave-flash'&gt;
&lt;/embed&gt;
&lt;/p&gt;    

&lt;p&gt;Dynamically added Elements will now animate with this code (crude form)&lt;/p&gt;

&lt;p&gt;
&lt;pre class="mxml" name="code"&gt;
   import mx.controls.Text;
   import mx.containers.Panel;
   import mx.effects.easing.Bounce;
   
   public var tmpPanelElements:Array = new Array();
   
   private function onCreationComplete():void
   {
    var tempArray:Array = getTempArray();
    for(var i:int = 0; i &lt; tempArray.length; i++)
    {
     var panel:Panel = new Panel();
     panel.width = 400;
     panel.height = 400;
     panel.id = 'panel' + i;
     
     var text:Text = new Text();
     text.text = 'text' + i;     
     panel.addChild(text);     

     panelContainer.addChild(panel);
     tmpPanelElements.push(panel); 
    }
   }
   
   private function getTempArray():Array
   {
    var tempArray:Array = ['one', 'two', 'three', 'four'];
    
    return tempArray;
   }
   
      private function onClickNext():void
      {
       var xByValue:Number = -455;
       loopNavigator.xBy = xByValue; 
       
       loopNavigator.play(tmpPanelElements);
      }
      
      private function onClickPrevious():void
      {
       var xByValue:Number = 455;
       loopNavigator.xBy = xByValue; 
       
       loopNavigator.play(tmpPanelElements);
      }

&lt;/pre&gt;
&lt;/p&gt;
&lt;/span&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-4453123142689662098?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/4453123142689662098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=4453123142689662098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4453123142689662098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4453123142689662098'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/04/slide-move-effects-to-your-flex.html' title='Slide Move Effects to your Flex Components'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-622425604331492999</id><published>2009-03-16T16:38:00.002-04:00</published><updated>2009-06-11T15:01:41.247-04:00</updated><title type='text'>Show No Leaf, Parent Nodes in grouped Flex Advanced data grid</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p align='justify'&gt;   I hit upon this scenario which is unique to one of my project. I would like to describe it in my own words taking a simple example. This example is targetted at showing the empty PARENT nodes (as empty folders) of the advanced data grid when the LEAF node is not present. &lt;/p&gt;    &lt;p align='justify'&gt;  There is a reservation system where the reservation is made for 4 nights. Each night can contain an optional vehicle (can contain one or more vehicles). Lets take a scenario where the first three nights of the reservation object having vehicles, but the fourth reservation does not have vehicles. Now you are asked to provide a dynamic-UI in the flex Advanced data grid to show the fourth night (a parent node) of a grouped data whose child does not exist. So when they want to add a vehicle later they can select the button to add vehicles for the fourth night. &lt;/p&gt;    &lt;p align='justify'&gt;  I am not sure if i had made it clear when i described above (here i go with an example).. I have "1" and "2" grouped as they are grouped by the property "id" and that internally contains children. So they look fine. Look at the code below: &lt;/p&gt;    &lt;p&gt;&lt;br/&gt;    &lt;/p&gt;
&lt;span class="fullpost"&gt;
&lt;textarea name="code" class="mxml"&gt;
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete()" width="241" height="214"&gt;
 &lt;mx:Script&gt;
  &lt;![CDATA[
   import mx.collections.ArrayCollection;
   
   [Bindable] private var flatData:ArrayCollection = new ArrayCollection();
   
   private function onCreationComplete():void
   {
    var obj1:Object = new Object();
    obj1.id = 1;
    obj1.name = 'One';
    flatData.addItem(obj1);
    
    var obj11:Object = new Object();
    obj11.id = 1;
    obj11.name = 'Another One';
    flatData.addItem(obj11);
    
    var obj2:Object = new Object();
    obj2.id = 2;
    obj2.name = 'Two';
    flatData.addItem(obj2);    
   }
   
  ]]&gt;
 &lt;/mx:Script&gt;
 &lt;mx:AdvancedDataGrid x="24" y="15" id="adg1" designViewDataType="tree" sortExpertMode="true" width="187"&gt;
  &lt;mx:dataProvider&gt;
   &lt;mx:GroupingCollection id="gc" source="{flatData}"&gt;
    &lt;mx:grouping&gt;
     &lt;mx:Grouping&gt;
      &lt;mx:GroupingField name="id"/&gt;
     &lt;/mx:Grouping&gt;
    &lt;/mx:grouping&gt;
   &lt;/mx:GroupingCollection&gt;
  &lt;/mx:dataProvider&gt;
  &lt;mx:columns&gt;
   &lt;mx:AdvancedDataGridColumn headerText="ID" dataField="id"/&gt;
   &lt;mx:AdvancedDataGridColumn headerText="Name" dataField="name"/&gt;
  &lt;/mx:columns&gt;
 &lt;/mx:AdvancedDataGrid&gt;
 &lt;mx:Button x="24" y="179" label="Add to Selected Row of ADG"/&gt;
 
&lt;/mx:Application&gt;

&lt;/textarea&gt;

&lt;p&gt; &lt;/p&gt;

Here is how the current code output looks like... Its traditionally grouped by id as long as they have their children (name) fine with them.

&lt;p&gt; &lt;/p&gt;


&lt;embed src='http://www.arunkumarm.com/flexsource/showemptynode/ShowingEmptyParentWithNoChild.swf' height='284' width='581' type='application/x-shockwave-flash'&gt;
&lt;/embed&gt;

&lt;p&gt; &lt;/p&gt;

Now all i want is - Have a parent with id = "3" shown as a folder on the grouped collection, so i now have an option to select the id="3" empty folder and add something to it (assuming there is no name already to it and user wants to add names dynamically by clicking on the button by selecting the row with id="3")

&lt;p&gt; &lt;/p&gt;

&lt;textarea name="code" class="mxml"&gt;
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete()" width="325" height="218"&gt;
 &lt;mx:Script&gt;
   import mx.collections.IHierarchicalCollectionView;
   import mx.collections.ArrayCollection;
   
   [Bindable] private var flatData:ArrayCollection = new ArrayCollection();
   
   private function onCreationComplete():void
   {
    var obj1:Object = new Object();
    obj1.id = 1;
    obj1.name = 'One';
    flatData.addItem(obj1);
    
    var obj11:Object = new Object();
    obj11.id = 1;
    obj11.name = 'Another One';
    flatData.addItem(obj11);
    
    var obj2:Object = new Object();
    obj2.id = 2;
    obj2.name = 'Two';
    flatData.addItem(obj2);    
   }

   private function addDummyParentNode(dummyValue:Number = 5):void
   {
       var dp:IHierarchicalCollectionView = groupedADG.dataProvider as IHierarchicalCollectionView;    
    var groupedData:ArrayCollection = (dp.source as GroupingCollection).source as ArrayCollection;

    for(var j:int = 0; j &lt; groupedData.length; j++)    
    {
     var item:Object = groupedData[j] as Object;
     if(dummyValue == Number(item.id)) 
     {
      break;
     }   
     else
     {
      var dummyParentNode:Object = {"id":3, children:[]};
      dp.addChild(null, dummyParentNode);
      
      groupedADG.dataProvider = dp; 
      groupedADG.validateNow(); 
      groupedADG.dataProvider.refresh();
      
      break;
     }  
    }
   }
 &lt;/mx:Script&gt;
 &lt;mx:AdvancedDataGrid id="groupedADG" x="10" y="15" designViewDataType="tree" sortExpertMode="true" width="305"&gt;
  &lt;mx:dataProvider&gt;
   &lt;mx:GroupingCollection id="gc" source="{flatData}"&gt;
    &lt;mx:grouping&gt;
     &lt;mx:Grouping&gt;
      &lt;mx:GroupingField name="id"/&gt;
     &lt;/mx:Grouping&gt;
    &lt;/mx:grouping&gt;
   &lt;/mx:GroupingCollection&gt;
  &lt;/mx:dataProvider&gt;
  &lt;mx:columns&gt;
   &lt;mx:AdvancedDataGridColumn headerText="ID" dataField="id"/&gt;
   &lt;mx:AdvancedDataGridColumn headerText="Name" dataField="name"/&gt;
  &lt;/mx:columns&gt;
 &lt;/mx:AdvancedDataGrid&gt;
 &lt;mx:Button x="10" y="179" label="Add a grouped parent id=3 folder with no child" width="305" click="addDummyParentNode()"/&gt;
 
&lt;/mx:Application&gt;

&lt;/textarea&gt;


&lt;p&gt; &lt;/p&gt;

In the above, i have just tried to check if the data already has a item or not..     I am just adding this for someone to know that it could be done... 

&lt;p&gt; &lt;/p&gt;

Here is how the output will look like:

&lt;p&gt; &lt;/p&gt;

&lt;embed src='http://www.arunkumarm.com/flexsource/showemptynode/Dymaic.swf' height='284' width='581' type='application/x-shockwave-flash'&gt;
&lt;/embed&gt;

&lt;/span&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-622425604331492999?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/622425604331492999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=622425604331492999' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/622425604331492999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/622425604331492999'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/03/show-no-leaf-parent-nodes-in-grouped.html' title='Show No Leaf, Parent Nodes in grouped Flex Advanced data grid'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-2036462693686242175</id><published>2009-03-16T16:14:00.002-04:00</published><updated>2009-06-11T15:02:29.073-04:00</updated><title type='text'>Refreshing the Binded dataprovider based on Custom Event in the Model</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;   Say you have an array of (Object) Sites shown in the data grid with labels Site Name. Also you have a column to delete the site as an item renderer in your sites list. There are easier ways to handle this scenario. &lt;/p&gt;    &lt;p&gt;  onItemDelete(); &lt;font color='#FF0000'&gt;=&amp;gt;&lt;/font&gt; removeTheSiteFromTheDataProvider(); &lt;font color='#FF0000'&gt;=&amp;gt;&lt;/font&gt; refreshTheDataProvider(); &lt;/p&gt;    &lt;p&gt;Imagine if you were to bind the array as an instance of an object. Say applicationData.sites is a getter function that is bindable and returns a custom array of sites handled through the instance applicationData object. Also, you dont have a simpler deletion logic now. Now on deleting the site from the data grid, i would want you to process a few operations, based on the result of the same, either proceed to refresh or not. To write this whole logic outside the view in the applicationData (class/Model), you may have to do the following:&lt;/p&gt;    

&lt;p&gt;
&lt;/p&gt;
&lt;span class="fullpost"&gt;

&lt;textarea name="code" class="mxml"&gt;
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete()"&gt;
 &lt;mx:DataGrid id="simpleSitesDG" x="10" y="10" width="199" height="104" dataProvider="{simpleSites}"&gt;
  &lt;mx:columns&gt;
   &lt;mx:DataGridColumn headerText="ID" dataField="id"/&gt;
   &lt;mx:DataGridColumn headerText="Name" dataField="name"/&gt;
   &lt;mx:DataGridColumn headerText="Delete"&gt;
    &lt;mx:itemRenderer&gt;
     &lt;mx:Component&gt;
      &lt;mx:HBox horizontalAlign="center"&gt;
       &lt;mx:Image source="@Embed('assets/cancel2.png')" buttonMode="true" click="outerDocument.deleteSite(data)"/&gt;
      &lt;/mx:HBox&gt;      
     &lt;/mx:Component&gt;
    &lt;/mx:itemRenderer&gt;
   &lt;/mx:DataGridColumn&gt;
  &lt;/mx:columns&gt;
 &lt;/mx:DataGrid&gt;
 
 
 
&lt;/mx:Application&gt;

&lt;/textarea&gt;

&lt;p&gt;&lt;/p&gt;

Here is the MX-Script part of it... &lt;br /&gt;

&lt;textarea name="code" class="as3"&gt;
   import mx.collections.ArrayCollection;
   
   private var dp:ArrayCollection = new ArrayCollection();
   
   private function onCreationComplete():void
   {
    //Contains a large data of site objects
    var site1:Object = new Object();
    site1.id = 100;
    site1.name = 'Land';
    site1.area = 300;
    site1.height = 30;
    site1.width = 10;
    site1.owner = 'Arun';
    dp.addItem(site1);
    
    //contains a large data of site object
    var site2:Object = new Object();
    site2.id = 101;
    site2.name = 'Air';
    site2.area = 400;
    site2.height = 40;
    site2.width = 10;
    site2.owner = 'Kiran';
    dp.addItem(site2);
    
    dispatchEvent(new Event('dataChange'));        
   }
   
   [Bindable(event="dataChange")]
   public function get simpleSites():ArrayCollection
   {
    var simpleSitesCollection:ArrayCollection = new ArrayCollection();
    for(var i:int = 0; i &lt; dp.length; i++)
    {
     //Just to mimic a slim object
     var newSlimObject:Object = new Object();
     newSlimObject.id = dp[i].id;
     newSlimObject.name = dp[i].name;
     
     simpleSitesCollection.addItem(newSlimObject);
    }
    return simpleSitesCollection;
   }
   
   // Called when deletion is invoked... Assume you are writing this as a part of ApplicationData and not in the same view
   // As a simpler case, you can always remove the item from dp and say simpleSitesDG.dataprovider.refresh() assuming the dataprovider is directly set   
   // But this is a dynamic event
   public function deleteSite(obj:Object = null):void
   {
    if(obj != null)
    {
     for(var i:int = 0; i &lt; dp.length; i++)
     {
      if(dp[i] != null &amp;&amp; dp[i].id == obj.id)
      {
       dp.removeItemAt(i);
       dispatchEvent(new Event('dataChange'));
       break;
      }
     }
    }
   }
   
&lt;/textarea&gt;

&lt;br /&gt;

Here is how the output will look like, when you delete the item, it throws up the event. This kind of dispatch is typically done in framework code and recommended practice.

&lt;br /&gt;

&lt;embed src='http://www.arunkumarm.com/flexsource/itemdeleteDG/DPRefreshOnDelete.swf' height='284' width='581' type='application/x-shockwave-flash'&gt;
&lt;/embed&gt;

&lt;/span&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-2036462693686242175?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/2036462693686242175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=2036462693686242175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2036462693686242175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2036462693686242175'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/03/refreshing-binded-dataprovider-based-on.html' title='Refreshing the Binded dataprovider based on Custom Event in the Model'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-4494842764278856484</id><published>2009-03-16T13:44:00.002-04:00</published><updated>2009-06-11T15:03:38.845-04:00</updated><title type='text'>Advanced Data Grid, Grouping based on Id but displaying Name</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;I had a small requirement to work up on the advanced data grid as below:&lt;/p&gt;    &lt;p&gt;  a) There are a few vehicles (objects of type Vehicle)&lt;br/&gt;       b) All these vehicles are to be grouped by their ID (there is a property by name id in the vehicle obj)&lt;br/&gt;      c) But the grouping in the flex advanced data grid should be displayed with the vehicle name and not the vehicle id &lt;/p&gt;    &lt;p&gt;  This is the simple example of using the "groupingFunction" on the grouping Field of the flex advanced data grid.&lt;/p&gt;    &lt;p&gt; &lt;/p&gt;    
&lt;span class="fullpost"&gt;
&lt;p&gt;               
&lt;textarea name="code" class="mxml"&gt;
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete()" width="233" height="186"&gt;
 &lt;mx:Script&gt;
  &lt;![CDATA[
   import mx.collections.ArrayCollection;
   
   [Bindable] private var flatData:ArrayCollection = new ArrayCollection();
   
   private function onCreationComplete():void
   {
    var obj1:Object = new Object();
    obj1.id = 1;
    obj1.name = 'One';
    flatData.addItem(obj1);
    
    var obj11:Object = new Object();
    obj11.id = 1;
    obj11.name = 'Another One';
    flatData.addItem(obj11);
    
    var obj2:Object = new Object();
    obj2.id = 2;
    obj2.name = 'Two';
    flatData.addItem(obj2);
    
    var obj22:Object = new Object();
    obj22.id = 2;
    obj22.name = 'Another Two';
    flatData.addItem(obj22);    
   }

    private function getName(item:Object, field:GroupingField):String
       {
        var result:String = '';
         //If you have loaded objects of multiple types you can check like this at runtime and have custom values sent out
         if(item is Object) 
         {
            result = item.name; //item[field.name].toString().substr(0, 1);
          }
          else
          {
           result = '';
          }
          return result;
       }
   
  ]]&gt;
 &lt;/mx:Script&gt;
 &lt;mx:AdvancedDataGrid x="24" y="10" id="adg1" designViewDataType="tree" sortExpertMode="true" width="187"&gt;
  &lt;mx:dataProvider&gt;
   &lt;mx:GroupingCollection id="gc" source="{flatData}"&gt;
    &lt;mx:grouping&gt;
     &lt;mx:Grouping&gt;
      &lt;mx:GroupingField name="id" groupingFunction="getName"/&gt;
     &lt;/mx:Grouping&gt;
    &lt;/mx:grouping&gt;
   &lt;/mx:GroupingCollection&gt;
  &lt;/mx:dataProvider&gt;
  &lt;mx:columns&gt;
   &lt;mx:AdvancedDataGridColumn headerText="Name" dataField="name"/&gt;
  &lt;/mx:columns&gt;
 &lt;/mx:AdvancedDataGrid&gt;
 
&lt;/mx:Application&gt;
&lt;/textarea&gt;
&lt;br /&gt;
Here is how it looks like as an output: (grouped by ID but shown as names)
&lt;br /&gt;
&lt;embed src='http://www.arunkumarm.com/flexsource/groupingADG/GroupingFunctionADG.swf' height='284' width='581' type='application/x-shockwave-flash'&gt;
&lt;/embed&gt;
&lt;/span&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-4494842764278856484?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/4494842764278856484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=4494842764278856484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4494842764278856484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4494842764278856484'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/03/advanced-data-grid-grouping-based-on-id.html' title='Advanced Data Grid, Grouping based on Id but displaying Name'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-5710562695226114827</id><published>2009-03-16T10:17:00.001-04:00</published><updated>2009-03-16T10:17:53.298-04:00</updated><title type='text'>Back to Basics - Event Propagation by Simple Example</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p align='justify'&gt;    Its very common to ask this question in interviews related to flex but some on the application development background dont even bother to know these minor things. It doesnt deny them from getting onboard as well. But this has been the most favorite topic of Ananth (my Ex-director @ Flex Team). Okay, here is the glimpse of it in few words: &lt;/p&gt;    &lt;p align='justify'&gt;&lt;strong&gt;&lt;font color='#990000'&gt;Capture phase&lt;/font&gt;&lt;/strong&gt;: Flash Player checks every node from the root of the tree to the direct parent of the target node to see whether it has a listener registered to&lt;br/&gt;      handle the event.&lt;br/&gt;      &lt;font color='#990000'&gt;&lt;strong&gt;Target phase&lt;/strong&gt;&lt;/font&gt;: The event is dispatched to the target node.&lt;br/&gt;      &lt;font color='#990000'&gt;&lt;strong&gt;Bubbling phase&lt;/strong&gt;&lt;/font&gt;: Flash Player carries out a check in a reverse manner with respect to that of the capturing phase (starting from the direct parent of the target node to the root of the tree).&lt;/p&gt;    &lt;p align='justify'&gt;Here is a lay-man's sample:&lt;/p&gt;    &lt;p align='justify'&gt;      &lt;object height='284' width='581' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'&gt;        &lt;param value='http://www.arunkumarm.com/flexsource/eventpropagation/EventPropagation.swf' name='movie'/&gt;        &lt;param value='high' name='quality'/&gt;        &lt;embed height='284' width='581' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' quality='high' src='http://www.arunkumarm.com/flexsource/eventpropagation/EventPropagation.swf'/&gt;      &lt;/object&gt;    &lt;/p&gt;    &lt;p align='justify'&gt; There is obviously a lot more to it, but this is only a basic... &lt;br/&gt;    &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-5710562695226114827?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/5710562695226114827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=5710562695226114827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5710562695226114827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5710562695226114827'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/03/back-to-basics-event-propagation-by.html' title='Back to Basics - Event Propagation by Simple Example'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-3111001171364441026</id><published>2009-03-16T10:05:00.001-04:00</published><updated>2009-03-16T10:05:53.763-04:00</updated><title type='text'>A pick of para from Flex Solutions..</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;      &lt;div align='justify'&gt;    I just started to read the book "Flex solutions - Essential Techniques for Flex 2 and Flex 3" as i wantd to quickly browse through and the catchy first para stunned me making me comment on this to the author - Marco Casario (http://casario.blogs.com). Here is the snippet directly from the book. &lt;/div&gt;    &lt;p&gt; &lt;/p&gt;      &lt;p align='justify'&gt;"&lt;em&gt;Since I first opened Flex Builder and learned the basics of Flex, I’ve fallen in love with it: a framework to create Flash applications easily. Thank God. The first version of Flex suffered from Macromedia’s poor market positioning of the technology (&lt;strong&gt;&lt;font color='#FF0000'&gt;at that time, it was        Macromedia, not Adobe&lt;/font&gt;&lt;/strong&gt;). Flex 1 required an expensive server module to compile applications.        How could I convince my boss to buy a Flex server just to make my life easier for Flash        application development?&lt;/em&gt;"&lt;/p&gt;      &lt;p align='justify'&gt;     I had been part of the Macromedia and Adobe. I could see how things were when it was macromedia and how things turned on when it became adobe. Flex 2 was infact from Macromedia and not Adobe. The inception of flex had a lot of questions when it began to start on, but after the AS3 plunge and the version 2 seperation it had made its own way clearly. If the version 2 werent from macromedia a hit version, it would have been a life of JRun as adobe is clear on thier investments. &lt;br/&gt;  &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-3111001171364441026?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/3111001171364441026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=3111001171364441026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3111001171364441026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3111001171364441026'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/03/pick-of-para-from-flex-solutions.html' title='A pick of para from Flex Solutions..'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-5528298757115439597</id><published>2009-01-09T15:42:00.001-05:00</published><updated>2009-01-09T15:53:51.469-05:00</updated><title type='text'>Flex - Internal Build Error has occured. Click for more information</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p align='justify'&gt;If you happen to encounter this error message - "An Internal Build Error has occured. Click here for more information" in your flex builder, the solution you can think of trying are the following:&lt;/p&gt;    &lt;p&gt;  a) Your code might not have a case for the switch brackets.      &lt;/p&gt;     
 &lt;pre name="code" class="java"&gt;
    switch (value)    
    {       
        // No case statements are written below but it has just the switch skeleton 

        //   case '1': 
        //      break; 
        //   default: 
        //      break; 
    }
 &lt;/pre&gt;
   &lt;p align='justify'&gt;   b) Try to locate the problem. The problem is thrown by the Flex Compiler. Click on your flex builder menu option &lt;font color='#0000FF'&gt;&lt;em&gt;Help-&amp;gt;About Eclipse SDK-&amp;gt; click on the button "Configuration Details"-&amp;gt; opens up a configuration dialog -&amp;gt; click on the "Error Log" button&lt;/em&gt;&lt;/font&gt;. You will see the error log on what is happening (why the flex compiler is failing, this is mostly because of Null pointer exception in the compiler code)&lt;/p&gt;      &lt;p align='justify'&gt;    c) Change your SDK version. &lt;font color='#0000FF'&gt;&lt;em&gt;Window -&amp;gt; Preferences -&amp;gt; Flex -&amp;gt; Installed SDKs -&amp;gt; {try a newer version of sdk&lt;/em&gt;&lt;/font&gt; download it from opensource.adobe.com/flex (look for sdk). Sometimes there could be a problem with a specific version of the sdk and it might be fixed in later versions. So Trying out later versions would help.&lt;/p&gt;    &lt;p align='justify'&gt;    d) Another alternate could be to switch the workspace (though not recommended). This could be the last resort for your options. Some times your workspace configuration files might get  messed up and you might not have much time to even think further (instead of getting stuck as your compiler wont work). Change your workspace to a brand new one and create your project from scratch (SVN?) &lt;/p&gt;  &lt;p align='justify'&gt;   e) Have ANT Script for your project which you can run through command line. So you will atleast know which package has a problem. So you can comment out that package / file for time being to resolve the issue to quickly and get going fast. &lt;br/&gt;  &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-5528298757115439597?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/5528298757115439597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=5528298757115439597' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5528298757115439597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5528298757115439597'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/01/flex-internal-build-error-has-occured.html' title='Flex - Internal Build Error has occured. Click for more information'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-2410888619733278306</id><published>2009-01-09T09:33:00.001-05:00</published><updated>2009-01-09T09:33:48.594-05:00</updated><title type='text'>Looking for Flex 3.02 ?</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;          &lt;p&gt;     If you are looking for Flex 3.02 (Flex builder dot release) either standalone version or Eclipse plugin installer version go here - &lt;a href='http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email'&gt;http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;    It got me sometime to figure out where Flex Builder Eclipse 3.02 plugin installer  is.... Hope you dont find much time figuring it out. &lt;br/&gt;      &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-2410888619733278306?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/2410888619733278306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=2410888619733278306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2410888619733278306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2410888619733278306'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/01/looking-for-flex-302.html' title='Looking for Flex 3.02 ?'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-8455389110453610354</id><published>2009-01-08T13:54:00.001-05:00</published><updated>2009-01-08T13:54:40.332-05:00</updated><title type='text'>Null Pointer Error in HaloBorder.as in Flex 3 SDK </title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;       &lt;div align='justify'&gt;            I happened to encounter a null pointer exception in the flex 3.0 sdk in the mx.skins.halo.HaloBorder.as, when i try to refresh multiple dataproviders on the screen (one for shoppingcart and one for siteslist through same time notifications using pure mvc framework)  &lt;/div&gt;    &lt;p align='justify'&gt;&lt;br/&gt;                     Its not good for writing a code like this, without checking if parent is null or not. [Click on the window to see the exact error]&lt;br/&gt;      &lt;/p&gt;                     &lt;a target='_blank' href='http://www.arunkumarm.com/blogphotos/null_checks.JPG'&gt;&lt;img height='250' width='400' src='http://www.arunkumarm.com/blogphotos/null_checks.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-8455389110453610354?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/8455389110453610354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=8455389110453610354' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8455389110453610354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8455389110453610354'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2009/01/null-pointer-error-in-haloborderas-in_08.html' title='Null Pointer Error in HaloBorder.as in Flex 3 SDK '/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-1842957003763316554</id><published>2008-11-07T15:11:00.000-05:00</published><updated>2009-01-07T09:33:35.548-05:00</updated><title type='text'>Flex 3 - KeyBoard Events, Flash Player 10 vs Flash Player 9</title><content type='html'>&lt;p&gt;
In trying to work on one of the requirements which requires us to handle Shortcut keys (example: Cntrl+1, Cntrl+2 etc), Using Flex Keyboard events, I happened to hit upon this same on the live docs. &lt;a href="http://livedocs.adobe.com/flex/3/html/help.html?content=events_11.html"&gt;Flex 3 Docs Sample&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;

Initially i thought It broken in Flash player 10 and is working fine in flash player 9. Place your cursor in the Text area below and press (cntrl+1) and see what you get. (Keycode for Cntrl key = 17). This swf is generated using flash player 10

&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;

&lt;embed src="http://www.arunkumarm.com/flexapps/KeyEventTest_fp9.swf" type="application/x-shockwave-flash" width="600" height="400"&gt; &lt;/embed&gt;

&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;

See this SWF (generated using flash player 9) which works almost the same way. Place your cursor in the Text area below and press (cntrl+1) and see what you get. If you press the keys 'cntrl' and '1' fast and release them fast, only cntrl event is fired and cntrl+1 event is not fired. Keep doing it fast, and at one point you will see both the keys start to respond, from here on everything keeps to be working. Open the url in a new browser window to retry this scenario (looks like key-up event is not getting fired initially when we press and release the keys faster).

&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
&lt;embed src="http://www.arunkumarm.com/flexapps/KeyEventTest_fp10.swf" type="application/x-shockwave-flash" width="600" height="400"&gt; &lt;/embed&gt;
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

And here the the same code that made it happen..

&lt;p&gt;&lt;/p&gt;

&lt;pre name="code" class="java"&gt;
        private function initApp():void {
            application.addEventListener(KeyboardEvent.KEY_UP, keyHandler);
            my_vbox.addEventListener(KeyboardEvent.KEY_UP, keyHandler);
            my_textinput.addEventListener(KeyboardEvent.KEY_UP, keyHandler);

            // Set the focus somewhere inside the application.
            my_textinput.setFocus();
        }

        private function keyHandler(event:KeyboardEvent):void {
            ta1.text += event.target + "(" + event.currentTarget + "): " + 
                event.keyCode + "/" + event.charCode + "\n";
        }
&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre name="code" class="xml"&gt;
&lt;?xml version="1.0"?&gt;
&lt;!-- events/KeyboardEventPrecedence.mxml --&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp();"&gt;
    &lt;mx:VBox id="my_vbox"&gt;
        &lt;mx:TextInput id="my_textinput"/&gt;
    &lt;/mx:VBox&gt;

    &lt;mx:TextArea id="ta1" height="300" width="550"/&gt;

&lt;/mx:Application&gt;

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-1842957003763316554?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/1842957003763316554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=1842957003763316554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/1842957003763316554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/1842957003763316554'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/11/flex-3-keyboard-events-flash-player-10_07.html' title='Flex 3 - KeyBoard Events, Flash Player 10 vs Flash Player 9'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-2734566479399247068</id><published>2008-11-03T09:08:00.001-05:00</published><updated>2008-11-03T09:08:44.977-05:00</updated><title type='text'>Getter / Setter Generator in Adobe Flex</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;While working on my current project using the &lt;a href='http://puremvc.org/'&gt;Pure MVC framework&lt;/a&gt;, which involes writing a lot of VO (value objects) that are a set of getter, setter accessor methods, using Flex Builder 3 is really tough. Thanks to these guys who created the &lt;a href='http://eokyere.blogspot.com/2007/09/productivity-with-dash-in-eclipse.html'&gt;Eclipse Monkey Plugin&lt;/a&gt; - Wow amazing. This saves a lot of time atleast in writing actual code instead of just getters/setters. Just to give you a headsup, this feature was implemented as a part of Flex Builder 4 feature by one of the developers at US, while i was at adobe bangalore about 6 months ago. I am sure that will help a lot of developers in not reiterating a routine boring work of hand-coding it. &lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-2734566479399247068?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/2734566479399247068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=2734566479399247068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2734566479399247068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2734566479399247068'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/11/getter-setter-generator-in-adobe-flex.html' title='Getter / Setter Generator in Adobe Flex'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-5985595826827736751</id><published>2008-11-02T14:09:00.000-05:00</published><updated>2008-11-02T14:20:47.535-05:00</updated><title type='text'>Verify if Object contains a proprety defined or not</title><content type='html'>In Adobe flex, you want to check if a property is defined inside an object, its pretty easy. 

&lt;pre name="code" class="java"&gt;
  /**
  * Test if the object obj contains a property named val
  *
  **/
  private function propertyTest(obj:Object):void
  {
     if(obj.hasOwnProperty("val"))
     {
       Alert.show('Has property named val defined and its value = ' + obj.val);
     }
     else
     {
       Alert.show('Property val is not defined in the object - obj');
     }
  }
  
  /**
  * Test method
  *
  **/
  private var testProperty():void
  {
     var val:String = "Test String";
     var obj:Object = new Object();
     obj.val = val;
 
     //test method call
     propertyTest(obj);
  }
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-5985595826827736751?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/5985595826827736751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=5985595826827736751' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5985595826827736751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5985595826827736751'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/11/verify-if-object-contains-proprety.html' title='Verify if Object contains a proprety defined or not'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-8662088171691744875</id><published>2008-10-23T11:10:00.001-04:00</published><updated>2008-10-23T17:26:23.188-04:00</updated><title type='text'>Icon on Grouped Column of Advanced Data Grid</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;br/&gt;

In Flex, On a GroupingCollection as a DataProvider to my AdvancedDataGrid, i wanted to have an icon (itemRenderer) only on the leaf nodes of my AdvancedDataGrid (grouped data).

This is how my initial code was:

 -&gt; Script block of my ActionScript-&gt;

&lt;pre name="code" class="java"&gt;
   import mx.collections.ArrayCollection;
   
   [Bindable]
   private var collection:ArrayCollection = new ArrayCollection([{group:'group1', id:'1', name:'name1'}, 
                    {group:'group1', id:'2', name:'name2'}, 
                    {group:'group2', id:'3', name:'name3'}]);
   private function setDP():void
   {
    gc.refresh();
    adg.expandAll();
   }

&lt;/pre&gt;


&lt;pre name="code" class="java"&gt;
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="setDP()"&gt;
 &lt;mx:Script&gt;
  &lt;![CDATA[
   import mx.collections.ArrayCollection;
   
   [Bindable]
   private var collection:ArrayCollection = new ArrayCollection([{group:'group1', id:'1', name:'name1'}, 
                    {group:'group1', id:'2', name:'name2'}, 
                    {group:'group2', id:'3', name:'name3'}]);
   private function setDP():void
   {
    gc.refresh();
    adg.expandAll();
   }
   
  ]]&gt;
 &lt;/mx:Script&gt;

 &lt;mx:AdvancedDataGrid id="adg" x="119" y="82" designViewDataType="tree"&gt;
  &lt;mx:dataProvider&gt;
   &lt;mx:GroupingCollection id="gc" source="{collection}"&gt;
    &lt;mx:grouping&gt;
     &lt;mx:Grouping&gt;
      &lt;mx:GroupingField name="group"/&gt;
     &lt;/mx:Grouping&gt;
    &lt;/mx:grouping&gt;
   &lt;/mx:GroupingCollection&gt;
  &lt;/mx:dataProvider&gt;
  &lt;mx:columns&gt;
   &lt;mx:AdvancedDataGridColumn headerText="Column 1" dataField="id"/&gt;
   &lt;mx:AdvancedDataGridColumn headerText="Column 2" dataField="name"/&gt;
&lt;!--     &lt;mx:AdvancedDataGridColumn headerText="Column 3" width="60" itemRenderer="renderertest" /&gt; --&gt;
      &lt;mx:AdvancedDataGridColumn headerText="Column 3" width="60"&gt;
       &lt;mx:itemRenderer&gt;
        &lt;mx:Component&gt;
         &lt;mx:HBox horizontalAlign="center"&gt;
          &lt;mx:Image source="assets/test.png" /&gt;
         &lt;/mx:HBox&gt;
        &lt;/mx:Component&gt;
       &lt;/mx:itemRenderer&gt;
      &lt;/mx:AdvancedDataGridColumn&gt; 
  &lt;/mx:columns&gt;
 &lt;/mx:AdvancedDataGrid&gt;



&lt;/mx:Application&gt;

&lt;/pre&gt;


And my surprising output was -

&lt;embed src="http://www.arunkumarm.com/codetouchblog/flexcode/groupingcollection/grouping_icon_notworking.swf" height="450" width="500" type="application/x-shockwave-flash"&gt; &lt;/embed&gt;


&lt;br /&gt;

I then removed inline item renderer and used external renderer (thanks to Srinivas Annam).

&lt;pre name="code" class="java"&gt;
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" horizontalScrollPolicy="off" verticalScrollPolicy="off"&gt;
 
  private var obj:Object;
  
  override public function set data(value:Object):void
  {
   super.data=value;
   obj=value;
   apply(value);
  }
  
  private function apply(data:Object):void
  {
   if(data == null)
    return;
   
   img.source="";
   if(data.name)
   {
    img.source="assets/test.png";
   }
  }
  
 &lt;mx:Image id="img" horizontalCenter="0" verticalCenter="0" buttonMode="true"/&gt;
&lt;/mx:Canvas&gt;
&lt;/pre&gt;

And I added the itemrederer for the column as :

&lt;pre name="code" class="java"&gt;

&lt;mx:AdvancedDataGridColumn headerText="Column 3" width="60" itemRenderer="renderertest" /&gt;
&lt;/pre&gt;

And I got the output i wanted:

&lt;embed src="http://www.arunkumarm.com/codetouchblog/flexcode/groupingcollection/grouping_icon_working.swf" height="450" width="500" type="application/x-shockwave-flash"&gt; &lt;/embed&gt;



&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-8662088171691744875?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/8662088171691744875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=8662088171691744875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8662088171691744875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8662088171691744875'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/10/icon-on-grouped-column-of-advanced-data.html' title='Icon on Grouped Column of Advanced Data Grid'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-1084035247902870641</id><published>2008-10-23T11:08:00.001-04:00</published><updated>2008-10-23T17:05:46.008-04:00</updated><title type='text'>labelFunction on GroupingCollection of Advanced Data Grid</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;Probably this is little simpler, or there may be more simpler solution. I was trying to hit upon an requirement which looks like this - &lt;/p&gt;    &lt;ul&gt;      &lt;li&gt;A Class Book which contains information about bookId, bookName&lt;/li&gt;      &lt;li&gt;A Class BookShelf which contains information about bookshelfId and book (object of Book)&lt;/li&gt;      &lt;li&gt;There is an array of BookShelf objects that form dataprovider for Advanced data grid where i want to show books grouped by BookShelfId and show the Book Information in the Advanced Data Grid.&lt;/li&gt;                              &lt;/ul&gt;                              
  &lt;p&gt; &lt;/p&gt;

&lt;pre name="code" class="java"&gt;
package
{
 public class Book
 {
  private var _id:int = 0;
  private var _name:String = '';
  
  public function Book()
  {   
  }

  public function set id(val:int):void
  {
   this._id = val;
  }

  public function get id():int
  {
   return this._id;
  }

  public function set name(val:String):void
  {
   this._name = val;
  }

  public function get name():String
  {
   return this._name;
  }

 }
}
&lt;/pre&gt;



&lt;pre name="code" class="java"&gt;
package
{
 public class BookShelf
 {
  private var _id:int = 0;
  private var _book:Book = new Book();
  
  public function BookShelf()
  {
  }

  public function get id():int
  {
   return _id;
  }

  public function set id(val:int):void 
  {
   _id = val;
  }

  public function get book():Book
  {
   return _book;
  }

  public function set book(val:Book):void 
  {
   _book = val;
  }
 }
}
&lt;/pre&gt;

&lt;pre name="code" class="java"&gt;
   import mx.collections.ArrayCollection;
   
   [Bindable]
   private var dataCollection:ArrayCollection = new ArrayCollection();
   
   private function setDP():void
   {
    var book1:Book = new Book();
    book1.id = 1;
    book1.name = 'Book Name 1';
        
    var book2:Book = new Book();
    book2.id = 2;
    book2.name = 'Book Name 2';

    var book3:Book = new Book();
    book3.id = 3;
    book3.name = 'Book Name 3';

    
    var bookshelf1:BookShelf = new BookShelf();
    bookshelf1.id = 100;
    bookshelf1.book = book1;
    
    var bookshelf2:BookShelf = new BookShelf();
    bookshelf2.id = 100;
    bookshelf2.book = book2;

    var bookshelf3:BookShelf = new BookShelf();
    bookshelf3.id = 101;
    bookshelf3.book = book3;
    
    dataCollection.addItem(bookshelf1);
    dataCollection.addItem(bookshelf2);
    dataCollection.addItem(bookshelf3);
    
   }

&lt;/pre&gt;

&lt;pre name="code" class="xml"&gt;
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="setDP()"&gt;
 &lt;mx:Script&gt;
  &lt;![CDATA[
   import mx.collections.ArrayCollection;
   
   [Bindable]
   private var dataCollection:ArrayCollection = new ArrayCollection();
   
   private function setDP():void
   {
    var book1:Book = new Book();
    book1.id = 1;
    book1.name = 'Book Name 1';
        
    var book2:Book = new Book();
    book2.id = 2;
    book2.name = 'Book Name 2';

    var book3:Book = new Book();
    book3.id = 3;
    book3.name = 'Book Name 3';

    
    var bookshelf1:BookShelf = new BookShelf();
    bookshelf1.id = 100;
    bookshelf1.book = book1;
    
    var bookshelf2:BookShelf = new BookShelf();
    bookshelf2.id = 100;
    bookshelf2.book = book2;

    var bookshelf3:BookShelf = new BookShelf();
    bookshelf3.id = 101;
    bookshelf3.book = book3;
    
    dataCollection.addItem(bookshelf1);
    dataCollection.addItem(bookshelf2);
    dataCollection.addItem(bookshelf3);
    
   }
   
  ]]&gt;
 &lt;/mx:Script&gt;


 &lt;mx:AdvancedDataGrid id="adg" x="119" y="82" designViewDataType="tree"&gt;
  &lt;mx:dataProvider&gt;
   &lt;mx:GroupingCollection id="gc" source="{dataCollection}"&gt;
    &lt;mx:grouping&gt;
     &lt;mx:Grouping&gt;
      &lt;mx:GroupingField name="id"/&gt;
     &lt;/mx:Grouping&gt;
    &lt;/mx:grouping&gt;
   &lt;/mx:GroupingCollection&gt;
  &lt;/mx:dataProvider&gt;
  &lt;mx:columns&gt;
   &lt;mx:AdvancedDataGridColumn headerText="Book Id" dataField="id"/&gt;
   &lt;mx:AdvancedDataGridColumn headerText="Book Name" dataField="name"/&gt;
  &lt;/mx:columns&gt;
 &lt;/mx:AdvancedDataGrid&gt;

&lt;/mx:Application&gt;
&lt;/pre&gt;




&lt;embed src="http://www.arunkumarm.com/codetouchblog/flexcode/groupingcollection/BookShelfApp_old.swf" width="400" type="application/x-shockwave-flash"&gt; &lt;/embed&gt;

&lt;br /&gt;

Change the BookShelf.as to contain the following getter function that retrieves the property of internal object..

&lt;pre name="code" class="java"&gt;

  private var _bookName:String = '';

  public function get bookName():String
  {
   return this._book.name;
  }

&lt;/pre&gt;

Change your MXML to use the new property that lies outside now! (Not an efficient solution but that works for time being)

&lt;pre name="code" class="java"&gt;
   &lt;mx:AdvancedDataGridColumn headerText="Book Name" dataField="bookName"/&gt;

&lt;/pre&gt;


&lt;embed src="http://www.arunkumarm.com/codetouchblog/flexcode/groupingcollection/BookShelfApp.swf" width="400" type="application/x-shockwave-flash"&gt; &lt;/embed&gt;


&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-1084035247902870641?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/1084035247902870641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=1084035247902870641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/1084035247902870641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/1084035247902870641'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/10/labelfunction-on-groupingcollection-of.html' title='labelFunction on GroupingCollection of Advanced Data Grid'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-743647323499385971</id><published>2008-09-04T16:56:00.000-04:00</published><updated>2008-09-04T20:59:09.736-04:00</updated><title type='text'>Number validation and Reset in Flex</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;                                &lt;object height='168' width='314' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'&gt;          &lt;param value='true' name='play'/&gt;          &lt;param value='true' name='loop'/&gt;          &lt;param value='http://www.arunkumarm.com/codetouchblog/flexcode/validateNumber/bin-release/validateNumber.swf' name='movie'/&gt;          &lt;param value='high' name='quality'/&gt;          &lt;embed play='true' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' quality='high' loop='True' height='168' width='314' src='http://www.arunkumarm.com/codetouchblog/flexcode/validateNumber/bin-release/validateNumber.swf'/&gt;        &lt;/object&gt;              &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt; Right Click on the SWF to view source&lt;/em&gt;&lt;/strong&gt; &lt;br/&gt;      &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-743647323499385971?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/743647323499385971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=743647323499385971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/743647323499385971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/743647323499385971'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/09/validate-number-reset-in-flex.html' title='Number validation and Reset in Flex'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-6413610854181193213</id><published>2008-08-06T20:53:00.000-04:00</published><updated>2008-08-06T20:57:35.634-04:00</updated><title type='text'>Unregister your Mediators after popupmanager.remove();</title><content type='html'>I had a strange behavior today with my pure MVC where i had spent couple of hours analyzing what was going wrong. I had a grouping collection for my Advanced datagrid that groups based on the customer name, where the list of passes vary depending on the pass types. The best way to do this type of scenario is to group the search results based on the customer name and show the varied number of entries in the customer name based on the pass types available.

All the while i had been refreshing my grouping collection source but i completely missed that the creation complete checks to see if i already have the mediator registered but the reference to the window created by the popup manager is generated every time newly but the mediator will be pointing (registered and listening) to a old pop up thats still not garbage collected. 

Always ensure to unregister your mediators after the use !! that would solve a lot of problems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-6413610854181193213?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/6413610854181193213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=6413610854181193213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6413610854181193213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6413610854181193213'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/08/unregister-your-mediators-after.html' title='Unregister your Mediators after popupmanager.remove();'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-8333798289439682735</id><published>2008-07-18T23:05:00.001-04:00</published><updated>2008-07-18T23:13:05.130-04:00</updated><title type='text'>Flex Builder 3 and Eclipse 3.4 (J2EE pack) - Not there yet !!</title><content type='html'>I loved the eclipse.org showing me today Eclipse 3.4 (Ganymede). Wow, its time for me to update my good old europa eclipse 3.3.2 to a new fantastic Eclipse 3.4

Pretty fast, i have 600kbps line at home so the download was pretty fast. Yup thats my eclipse 3.4 up and running. Installing Flex builder 3 professional plugin ofcourse gives me a warning during my installation that it cannot find eclipse 3.3 or eclipse 3.2 (the supported versions). 

I really liked the eclipse 3.4 that works superb with the SVN subclipse plugin. I just loved it. I installed flex builder ahead and imported my flex project and find an error opening my .mxml file (right at the first step). 

Hmm then i remembered, the configuration files present in the eclipse/configuration directory and flex builder 3 / eclipse directory that claim the support for the product. You know what, we need rework on the new eclipse. Sometimes, i wish the related products should be aligned with their releases and corresponding supports but well, blame no one.. its the world that moves faster than what we do. I love both adobe and eclipse for their lovely tools at the end.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-8333798289439682735?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/8333798289439682735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=8333798289439682735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8333798289439682735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8333798289439682735'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/07/blog-post.html' title='Flex Builder 3 and Eclipse 3.4 (J2EE pack) - Not there yet !!'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-3401391323732663069</id><published>2008-07-18T22:45:00.000-04:00</published><updated>2008-07-18T23:02:57.280-04:00</updated><title type='text'>Pure MVC and Flex</title><content type='html'>After the cairngorm made by the adobe consulting, i hit upon this framework Pure MVC that seperates Model, View, Controller and also seperates the view with the observer design pattern. 

To make it simple look at it as this:
a) Model =&gt; 
b) View =&gt;
c) Controller =&gt; 

ApplicationFacade -&gt; controls the commands to be added
controllers are similar to commands
view talks to the Mediators (that are registered) and ensure to unregister them after you use them. You would send notifications to the mediators and the mediators catch the notifications, call the proxies registered with the applicationfacade during the app start up. Proxies can be used to make webservice calls or any other model calls. Proxies return back to the mediator that talks to the view again.

It really looks very logical but i feel its a bit overheard in terms of development. Too many listeners, too many things listening to the notifications... too much of a granularity in terms of programming... hard to find guys with adequete knowledge to get on with it. But this is the trade off between developing a huge enterprise application with ease of development or best practises. If not written properly PureMVC can turn out to be a nightmare to figure out what is happening in the entire application. If the registered mediators are not removed out after the use, the memory consumption can go bizzare. I will come up with a sample example after a while and show you how it works after a later time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-3401391323732663069?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/3401391323732663069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=3401391323732663069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3401391323732663069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3401391323732663069'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/07/pure-mvc-and-flex.html' title='Pure MVC and Flex'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-31240352099250999</id><published>2008-06-15T00:40:00.001-04:00</published><updated>2008-06-15T00:41:29.687-04:00</updated><title type='text'>Adobe Cricket AIR Application - My work goes live</title><content type='html'>Happy to share that some of my regular work at office for a short span of time went live ... here is my story of the same.. &lt;a href="http://blog.arunkumarm.com/2008/06/my-work-goes-live-cricket-air-for.html"&gt;About the app&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-31240352099250999?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/31240352099250999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=31240352099250999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/31240352099250999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/31240352099250999'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/06/adobe-cricket-air-application-my-work.html' title='Adobe Cricket AIR Application - My work goes live'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-2116151648362694890</id><published>2008-04-17T11:34:00.001-04:00</published><updated>2008-04-17T11:34:31.250-04:00</updated><title type='text'>mx:ColorPicker set color, convert uint to string of selectedColor</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;If you are working with &amp;lt;mx:ColorPicker /&amp;gt; in flex and assuming the following are your requirements: &lt;/p&gt;    &lt;p&gt;a) You want to set the colorpicker to some color &lt;/p&gt;    &lt;p&gt;b) working with selectedIndex, selectedColor&lt;/p&gt;    &lt;p&gt;c) you want to store the selectedColor of the color picker as a String in your database and convert the stored String value to set it back to colorpicker so you can set the color to the color picker (&amp;lt;mx:colorpicker&amp;gt;), here you go:&lt;br/&gt;      &lt;br/&gt;      Assuming you have two color pickers and you want to set the color picker value of 'cp' to 'newcp' &lt;br/&gt;      &lt;br/&gt;        &amp;lt;mx:ColorPicker id='cp'/&amp;gt;      &lt;br/&gt;         &amp;lt;mx:ColorPicker id='newcp' /&amp;gt;&lt;br/&gt;       &lt;br/&gt;     if you do {cp.selectedIndex} in your action script code, it will return you an int value which is equal to the index number of the palette. Every color has a index number, the default value=0. &lt;br/&gt;     &lt;br/&gt;      var cpSelectedIndexStr:String = cp.selectedIndex.toString();&lt;br/&gt;        newcp.selectedIndex = int(cpSelectedIndexStr);&lt;br/&gt;  &lt;br/&gt;  if you do {cp.selectedColor} in your action script code, it will return you a uint value. The following code will NOT work - &lt;br/&gt;  &lt;br/&gt;       var   cpSelectedColorStr:String = cp.selectedColor.toString();&lt;br/&gt;        newcp.selectedColor = uint(cpSelectedColorStr); &lt;br/&gt;  &lt;br/&gt;  The following code will work -   &lt;br/&gt;        &lt;br/&gt;          var cpSelectedColorStr:String = cp.selectedColor.valueOf().toString();&lt;br/&gt;         newcp.selectedColor = uint(cpSelectedColorStr);&lt;br/&gt;      &lt;br/&gt;      This is a very basic conversion funda.. hope you get it...    &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-2116151648362694890?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/2116151648362694890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=2116151648362694890' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2116151648362694890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2116151648362694890'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/04/mxcolorpicker-set-color-convert-uint-to.html' title='mx:ColorPicker set color, convert uint to string of selectedColor'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-3666808137359570344</id><published>2008-03-31T04:23:00.001-04:00</published><updated>2008-03-31T04:23:51.587-04:00</updated><title type='text'>AIR &amp; LCDS - How do they work together?</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p class='tags'&gt;&lt;a rel='tag' href='http://www.technorati.com/tag/LCDS'&gt;LCDS&lt;/a&gt;,&lt;a rel='tag' href='http://www.technorati.com/tag/Adobe AIR'&gt;Adobe AIR&lt;/a&gt;,&lt;a rel='tag' href='http://www.technorati.com/tag/Flex Builder'&gt;Flex Builder&lt;/a&gt;,&lt;a rel='tag' href='http://www.technorati.com/tag/services-config.xml for AIR'&gt;services-config.xml for AIR&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Its easy to get started with Flex App and LCDS (i assume you know how to).. Use Flex Builder and create a J2EE Project with Remoting enabled. Use the LCDS setup install path for the context root in your dialog and set up the project. &lt;br/&gt;    &lt;br/&gt;    Typically if you make a Flex Application you would ensure that your output directory of the generated SWF lies in the folder location inside the /flex directory     or /samples/ directory of your flex application. Relevant config files have to be picked up ... I will describe the configuration files here in brief about LCDS:&lt;br/&gt;    &lt;br/&gt;    -&amp;gt; service-config.xml - Main xml file that includes the below xml files and references them &lt;br/&gt;    -&amp;gt; remoting-config.xml - Used for writing destinations of Java/AS mappings using mx:RemotObject &lt;br/&gt;    -&amp;gt;proxy-config.xml - Used for writing destinations for mx:HTTPServlet/mx:WebService &lt;br/&gt;    -&amp;gt; messaging-config.xml - Used to write destinations for mx:MessageProducer, mx:MessageConsumer &lt;br/&gt;    -&amp;gt;data-management-config.xml - for DataService, fill operations&lt;/p&gt;  &lt;p&gt;All these files reside in : C:\lcds\jrun4\servers\default\flex\WEB-INF\flex (On Windows) and /home/username/lcds/jrun4/servers/default/flex/WEB-INF (On Linux) (All this if you are running LCDS 2.5.1)&lt;br/&gt;    &lt;br/&gt;    Using Flex Builder, You can Create an AIR Project with J2EE, LCDS Enabled for the project. So what happens? Your subscription to destinations may not work!! The same stuff on Flex Project works fine. So how do you rectify it?&lt;br/&gt;    &lt;br/&gt;    AIR Projects need some extra settings in-order to work with LCDS -&lt;br/&gt;    &lt;br/&gt;    A) Copy the services-config.xml from the above locatoin on the server to your project    'src' directory. &lt;br/&gt;    B) Raneme the copied file as 'custom-services-config.xml'&lt;br/&gt;    C) Open the menu in flex builder, Project-&amp;gt;Properties    &lt;br/&gt;    D) Go to the Compiler settings and you will find that the 'services-config.xml' need to be modified to include this one in the new path. i.e., set it as 'custom-services-config.xml'&lt;br/&gt;    E) Open the custom-services-config.xml file and look at your default channel (protocol). If you are using 'my-polling-amf' or 'my-rtmp', ensure that you remove the dummy 'http://{server-name}:port' and change it to 'http://localhost:portnumber or http://ip-address:portnumber' (similarly rtmp://{server-name}:port' to rtmp://localhost:portnumber or rtmp://ipaddress:portnumber)&lt;br/&gt;    F) Ensure that you have set your Default Channel accordingly as you altered.&lt;br/&gt;    G) Also, along with the custom-services-config.xml you would need remoting-config.xml, messaging-config.xml, data-management-config.xml. Copy them all to your local project src directory. &lt;br/&gt;    H) Ensure that you write all your destinations two times. One in the local copied files (related config file), and the remotely available config files. &lt;br/&gt;    &lt;br/&gt;    Most problems related to changing of Protocol in LCDS occur due to "NOT CLEANING the Project and re-compiling it". As you change the compiler properties to include custom-services.config.xml, you would have already enabled auto-compile option. So this change will not recompile it unless you make changes to your app. So Ensure that you clean your project and recompile it.    &lt;br/&gt;  &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-3666808137359570344?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/3666808137359570344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=3666808137359570344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3666808137359570344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3666808137359570344'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/03/air-lcds-how-do-they-work-together.html' title='AIR &amp;amp; LCDS - How do they work together?'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-8981380668571206496</id><published>2008-03-26T00:29:00.001-04:00</published><updated>2008-03-26T00:29:55.682-04:00</updated><title type='text'>Compiling and Running an AIR application on Linux (using sdk)</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;"Compiling and Running an AIR application on Linux (using sdk) is same as how you do it on Windows". If you have Flex Builder, you dont have to worry about this. BTW, this post is only for beginners on AIR. If you want to compile and run the app using the sdk (terminal on linux, cmd on windows), Here is how you do that. &lt;br/&gt;        &lt;br/&gt;        a) Get the SDK downloaded to a locatoin (ex: /home/username/flexsdk/)&lt;br/&gt;        b) If you are installing Flex Builder Linux Alpha 3 (to be released in labs around 31 March), you have an inbuilt sdk in your install location (ex: $INSTALL_LOCATION/Adobe_Flex_Builder_Linux/sdks/3.0.0)&lt;br/&gt;        c) Use the "amxmlc"        - AIR MXML compiler present in your sdK (ex: $INSTALL_LOCATION/Adobe_Flex_Builder_Linux/sdks/3.0.0/amxmlc)&lt;br/&gt;        d) Assuming you have created an AIR MXML Application with its application properties file AIR XML file. (locatoin ex: /home/username/AIRApps/FirstAirApp/MyApp.mxml, MyApp-app.xml)&lt;br/&gt;        e) You will have to find AIR runtime directory (if you have installed Flex Builder on Linux alpha 3, Then runtime directory = $INSTALL_LOCATION/Adobe_Flex_Builder_Linux/sdks/3.0.0/runtimes/air/Linux), &lt;br/&gt;        e) Open your Terminal (cmd prompt on windows)&lt;br/&gt;    &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;br/&gt;      To Compile your MXML File     &lt;/strong&gt;&lt;br/&gt;      f)  $localhost@terminal&amp;gt;"$INSTALL_LOCATION/Adobe_Flex_Builder_Linux/sdks/3.0.0/bin/amxmlc"  &amp;lt;space&amp;gt; /home/username/AIRApps/FirstAirApp/MyApp.mxml&lt;br/&gt;    g) It will generate a SWF file with the same name in your directory (from where you are compiling)&lt;br/&gt;    &lt;br/&gt;    &lt;strong&gt;Configure your *-app.xml to point it to the generated SWF&lt;br/&gt;    &lt;/strong&gt;h) Open the application descriptor file       "/home/username/AIRApps/FirstAirApp/MyApp-app.xml" (either in vi editor or in text editor), Find the string "[This value will be overwritten by Flex Builder in the output app.xml]" with in the tags &amp;lt;content&amp;gt; nested inside &amp;lt;initialWindow&amp;gt;. Remove the string present in the &amp;lt;content&amp;gt;...&amp;lt;/content&amp;gt; and replace it with the path to the SWF file generated after you have compiled it. (example: &amp;lt;content&amp;gt;/home/username/....../Myapp.swf&amp;lt;/content&amp;gt;). Save the file. &lt;br/&gt;      &lt;br/&gt;      &lt;strong&gt;Running your air app:&lt;/strong&gt; &lt;br/&gt;      i) In Your terminal run the command :&lt;br/&gt;      localhost@username&amp;gt;       $INSTALL_LOCATION/Adobe_Flex_Builder_Linux/sdks/3.0.0/bin/adl_lin &amp;lt;space&amp;gt; -runtime &amp;lt;space&amp;gt; $INSTALL_LOCATION/Adobe_Flex_Builder_Linux/sdks/3.0.0/runtimes/air/Linux &amp;lt;space&amp;gt; /home/username/AIRApps/FirstAirApp/MyApp-app.xml&lt;br/&gt;       &lt;br/&gt;       There you go... Your AIR App is launched for you. &lt;br/&gt;       &lt;br/&gt;       PS:Please note that AIR Runtime (packaging/installing air apps etc.) does not come with Flex Builder Linux installation. You can get AIR Runtime for Linux on labs once again.       &lt;br/&gt;      &lt;br/&gt;      &lt;br/&gt;    &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-8981380668571206496?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/8981380668571206496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=8981380668571206496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8981380668571206496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8981380668571206496'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/03/compiling-and-running-air-application.html' title='Compiling and Running an AIR application on Linux (using sdk)'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-6932726404831565107</id><published>2008-03-19T11:11:00.001-04:00</published><updated>2008-03-26T00:31:00.309-04:00</updated><title type='text'>Flex Builder Linux - Alpha3</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;The Alpha3 version of Flex Builder for Linux is gonna hit the public users on LABS.ADOBE.COM around March 31th 2008. So what would it comprise of?&lt;br/&gt;    &lt;br/&gt;    As the version still stays at alpha, dont expect really much. No Design View as yet. But yet, something exciting to speak - Support for AIR in flex builder.. plus some bug fixes...&lt;br/&gt;    &lt;br/&gt;    Hope you will like the addition of AIR and provide us your feedback as always...     &lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-6932726404831565107?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/6932726404831565107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=6932726404831565107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6932726404831565107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6932726404831565107'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2008/03/flex-builder-linux-alpha3.html' title='Flex Builder Linux - Alpha3'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-6757371243707968564</id><published>2007-12-19T06:53:00.001-05:00</published><updated>2007-12-19T06:55:37.942-05:00</updated><title type='text'>FBLinux Alpha2 Installer on 64bit Linux OS</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='justify'&gt;The installer of Flex Builder Linux Alpha2 is modified slightly to help people trying it out on 64Bit OS. We need to download 32Bit Eclipse, 32Bit Sun JRE and 32bit Firefox for the installation to go successful. &lt;br/&gt;            &lt;br/&gt;  If you are starting the installer on a 64bit OS - (It shows this OS Check message)&lt;br/&gt;              &lt;a href='http://www.arunkumarm.com/blogphotos/tech/Screenshot.jpg' target='_blank'&gt;&lt;img src='http://www.arunkumarm.com/blogphotos/tech/Screenshot.jpg' width='600' height='418'/&gt;&lt;/a&gt;&lt;br/&gt;               &lt;br/&gt;              If you launch the installer with 64bit Sun JRE - (it exits with this message) &lt;br/&gt;              &lt;a href='http://www.arunkumarm.com/blogphotos/tech/Screenshot-2.jpg' target='_blank'&gt;&lt;img src='http://www.arunkumarm.com/blogphotos/tech/Screenshot-2.jpg' width='600' height='417'/&gt;&lt;/a&gt;&lt;br/&gt;  If you choose 64Bit Eclipse while selecting the eclipse path then it throws the below error and exits.&lt;br/&gt;  &lt;a href='http://www.arunkumarm.com/blogphotos/tech/Screenshot-1.jpg' target='_blank'&gt;&lt;img src='http://www.arunkumarm.com/blogphotos/tech/Screenshot-1.jpg' width='600' height='416'/&gt;&lt;br/&gt;          &lt;/a&gt;Also note that you will need to install Flash Player debug player manually by copying th&lt;u&gt;e &lt;/u&gt;libflashplayer.so file into the downloaded version of 32bit Firefox on your 64bit machine&lt;u&gt;.&lt;/u&gt;&lt;a href='http://www.arunkumarm.com/blogphotos/tech/Screenshot-1.jpg' target='_blank'&gt;&lt;u&gt;&lt;br/&gt;          &lt;br/&gt;          &lt;/u&gt;&lt;/a&gt; &lt;br/&gt;                  &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-6757371243707968564?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/6757371243707968564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=6757371243707968564' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6757371243707968564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6757371243707968564'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/12/fblinux-alpha2-installer-on-64bit-linux.html' title='FBLinux Alpha2 Installer on 64bit Linux OS'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-3272808549838803029</id><published>2007-12-19T01:32:00.001-05:00</published><updated>2007-12-19T01:32:22.232-05:00</updated><title type='text'>How to Serialize your DataVisualization Trials (Charting, ADG, ODG, PADG etc.)</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;It is a commonly asked question on how do i serialize Datavisualization Trials that are available bundled with &lt;a href='http://labs.adobe.com/technologies/flex/flexbuilder_linux/'&gt;Flex Builder Linux Alpha 2&lt;/a&gt;. &lt;br/&gt;          &lt;br/&gt;          You can get your Windows Flex Builder Beta 3 serial and plug-it into Flex Builder Linux to get it serialized. This may be a temporary thing for now but it might change as it goes ahead...&lt;br/&gt;          &lt;br/&gt;          Open the file $HOME/.adobe/Flex/license.properties &lt;br/&gt;          Add a new line - flexbuilder3=XXXX-YYYY-ZZZZ-blabla...&lt;br/&gt;          &lt;br/&gt;          Save the file and see your DMV Trial water mark is no more...          &lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-3272808549838803029?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/3272808549838803029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=3272808549838803029' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3272808549838803029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3272808549838803029'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/12/how-to-serialize-your-datavisualization.html' title='How to Serialize your DataVisualization Trials (Charting, ADG, ODG, PADG etc.)'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-1179118736323682348</id><published>2007-12-19T01:19:00.001-05:00</published><updated>2007-12-19T01:19:27.570-05:00</updated><title type='text'>Flex Builder Linux Alpha 2 Available...</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Flex Builder Linux alpha 2 is available in Labs... &lt;a href='http://labs.adobe.com/technologies/flex/flexbuilder_linux/'&gt;http://labs.adobe.com/technologies/flex/flexbuilder_linux/&lt;/a&gt; You can look at the release notes here - &lt;a href='http://labs.adobe.com/technologies/flex/flexbuilder_linux/releasenotes.html'&gt;http://labs.adobe.com/technologies/flex/flexbuilder_linux/releasenotes.html&lt;/a&gt;&lt;br/&gt;          &lt;br/&gt;          This release is more of a Alpha 1 Refresh where in not major features were added to it. Work is still going on to support some of the really requested features. This release however has addition to some of the new features like, Flash player r115 debug player update, Installer enhancements for better messaging in 64bit OS (doesnt natively support 64bit apps though!)..JSEclipse plugin installation, Bug Fixes which were prolonging from long time, DataVisualization Trials embedded....&lt;br/&gt;          &lt;br/&gt;          All set for your Flex works to keep going on and on... Hope you liked it...          &lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-1179118736323682348?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/1179118736323682348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=1179118736323682348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/1179118736323682348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/1179118736323682348'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/12/flex-builder-linux-alpha-2-available.html' title='Flex Builder Linux Alpha 2 Available...'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-8721092377166832960</id><published>2007-11-23T06:44:00.001-05:00</published><updated>2007-11-23T06:44:18.535-05:00</updated><title type='text'>Flex for Java Developers</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;Did you ever thought how flex would look on your Java based application...&lt;/p&gt;          &lt;p&gt;You must learn and read on..   Watch this.. &lt;a href='http://www.adobe.com/devnet/flex/articles/flex_java_eseminar.html'&gt;http://www.adobe.com/devnet/flex/articles/flex_java_eseminar.html&lt;/a&gt;&lt;br/&gt;                          &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-8721092377166832960?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/8721092377166832960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=8721092377166832960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8721092377166832960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8721092377166832960'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/11/flex-for-java-developers.html' title='Flex for Java Developers'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-633974756842857300</id><published>2007-10-04T14:46:00.001-04:00</published><updated>2007-10-04T14:46:36.803-04:00</updated><title type='text'>Adobe Flex Builder Linux (Alpha) on Eclipse 3.3 - Whats in the pack !!</title><content type='html'>Looking for an IDE to develop RIAs using Flex on your Linux boxes.... Herez hitting "Adobe Flex Builder Linux" (Alpha - an early release)... It has a Plugin installer to install into Eclipse 3.3 (Europa) release and requiring SUN JRE 1.5...&lt;br/&gt;&lt;br/&gt;&lt;a href='http://codetouch.blogspot.com/2007/10/adobe-flex-builder-linux-whats-in.html'&gt;read more&lt;/a&gt; | &lt;a href='http://digg.com/linux_unix/Adobe_Flex_Builder_Linux_Alpha_on_Eclipse_3_3_Whats_in_the_pack'&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-633974756842857300?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/633974756842857300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=633974756842857300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/633974756842857300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/633974756842857300'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/10/adobe-flex-builder-linux-alpha-on.html' title='Adobe Flex Builder Linux (Alpha) on Eclipse 3.3 - Whats in the pack !!'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-4615822933243849276</id><published>2007-10-04T13:27:00.001-04:00</published><updated>2007-10-04T13:27:33.728-04:00</updated><title type='text'>Adobe Flex Builder Linux - Whats in..</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p class='tags'&gt;&lt;a rel='tag' href='http://www.technorati.com/tag/flex builder linux'&gt;flex builder linux&lt;/a&gt;,&lt;a rel='tag' href='http://www.technorati.com/tag/flex'&gt;flex&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;For developing RIAs on linux, Adobe has already announced its open source Flex SDK on linux by which users can create applications (example in either vi editor etc) and compile using a command-line in the terminal. At &lt;a href='http://www.peterelst.com/blog/2007/10/03/adobe-max-chicago-sneak-peeks'&gt;Max 2007,&lt;/a&gt; Adobe has announced a fruitful product to the linux geeks.. Yes, its Adobe Flex Builder Linux... Its an early alpha release available in &lt;a href='http://labs.adobe.com/downloads/flexbuilder_linux.html'&gt;Adobe Labs for Download&lt;/a&gt;.&lt;/p&gt;          &lt;blockquote&gt;            &lt;p&gt;&lt;strong&gt;&lt;font color='#0000FF'&gt;So What does it have inside?&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;          &lt;/blockquote&gt;          &lt;p&gt; It has a large set of features derived from its Windows release (Flex builder 3 beta..It does not have all the features though!!) Let me walk through some of the major features which are in...Oh yes, that would be a good start point for developing RIAs on linux... &lt;br/&gt;            &lt;br/&gt;            a) Project Creation Wizards (where you can create projects integrated with ASP .Net, J2EE, PHP, Coldfusion).. &lt;br/&gt;            b) Code Coloring, Code Hinting, Code Auto Completion, Code Folding.. &lt;br/&gt;            c) Running  applications..&lt;br/&gt;            d) Debugging             applicatoins with various views like breakpoints, watch variables, stack view... &lt;br/&gt;            e) Support to create various Flex File types (MXML Application, MXML Component, MXML Module, CSS File, New Folder, Empty file etc.)&lt;br/&gt;            f) Find All References in project, workspace, etc.&lt;br/&gt;            g) Outline view which gives a complete tree structure of your code&lt;br/&gt;            h) Problems panel which reports compiler errors, warnings etc.&lt;br/&gt;            i) Project Properties, Configuring SWC folders, Add Library Projects as references, Build path..&lt;br/&gt;            j) Multiple SDK Configuration&lt;br/&gt;            k)             Import and Export projects&lt;br/&gt;            l) Export to release version&lt;br/&gt;            m) Create Ajax-Bridge wrappers&lt;br/&gt;            n)             Find, Replace... &lt;br/&gt;            o) Commenting code..&lt;br/&gt;            p) Navigating to the declaration (Open definition), Quick outline view, Open Resource...&lt;br/&gt;            q) Project Properties, Auto Build on, off, build all, clean project...&lt;br/&gt;            and a lot more.... &lt;br/&gt;          &lt;/p&gt;          &lt;blockquote&gt; &lt;/blockquote&gt;          &lt;blockquote&gt;            &lt;p&gt;&lt;strong&gt;&lt;font color='#0000FF'&gt;What is not in....(with time and as we head towards the release these might get added..)..&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;          &lt;/blockquote&gt;          &lt;p&gt;a) Design View &lt;br/&gt;            b) Web Service Introspection&lt;br/&gt;            c) Coldfusion extensions for FB&lt;br/&gt;            d) Data Visualization components (not supported by default but you can port the .SWC from valid windows/mac machine on to linux and all will start working...)&lt;br/&gt;            e) Data Wizards&lt;br/&gt;            f) AIR Support&lt;br/&gt;            h) Refactoring&lt;br/&gt;            i) States View&lt;br/&gt;            j) Flex Profiling&lt;/p&gt;          &lt;p&gt;Its supported on three flavors of Linux, RHEL WS 4, SUSE 10, Ubuntu 7.. SUN JRE 1.5 and Eclipse 3.3 is required on the machine. The Installer for flex builder is a plugin to Eclipse 3.3 which also installs debug version of flash player.... Read &lt;a href='http://codetouch.blogspot.com/2007/10/installing-flex-builder-linux-alpha.html'&gt;here for installation and get set go&lt;/a&gt;... &lt;br/&gt;          &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-4615822933243849276?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/4615822933243849276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=4615822933243849276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4615822933243849276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4615822933243849276'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/10/adobe-flex-builder-linux-whats-in.html' title='Adobe Flex Builder Linux - Whats in..'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-4057021878910573360</id><published>2007-10-03T15:31:00.001-04:00</published><updated>2007-10-03T15:31:34.428-04:00</updated><title type='text'>Installing Flex Builder Linux Alpha</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p class='tags'&gt;&lt;a rel='tag' href='http://www.technorati.com/tag/Flex builder Linux'&gt;Flex builder Linux&lt;/a&gt;,&lt;a rel='tag' href='http://www.technorati.com/tag/Flex builder linux installation'&gt;Flex builder linux installation&lt;/a&gt;,&lt;a rel='tag' href='http://www.technorati.com/tag/Linux RIA development tools'&gt;Linux RIA development tools&lt;/a&gt;,&lt;a rel='tag' href='http://www.technorati.com/tag/Flex Linux'&gt;Flex Linux&lt;/a&gt;&lt;/p&gt;          &lt;p align='justify'&gt;         If you have downloaded &lt;a href='http://labs.adobe.com/technologies/flex/flexbuilder_linux/'&gt;Flex Builder linux alpha&lt;/a&gt; from the Adobe labs.. Here is how you can start with for the installation... Remember to read the &lt;a href='http://labs.adobe.com/technologies/flex/flexbuilder_linux/releasenotes.html'&gt;release notes&lt;/a&gt; which also has some references to installation... Flex Builder linux alpha supports only Plugin installation into Eclipse 3.3 (Europa) release and is not available via a Standalone version installer. Please do have Eclipse 3.3 downloaded... &lt;br/&gt;            So what do you need to have... &lt;/p&gt;          &lt;p align='justify'&gt;a) One of the supported Linux Flavor (RHEL WS 4, SLES 10, Ubuntu).. If you want to try out a new distro then its not guaranteed that it will work pretty well 100% but yeah... it might work !! (may god help you...)&lt;/p&gt;          &lt;p align='justify'&gt;b) Have Sun JRE 1.5 Installed on your machine and get going as below... (It doesnt work with 1.4.x... it can work with 1.6 but not supported as of now... pretty early drop so is it...!!) &lt;br/&gt;            &lt;/p&gt;          &lt;blockquote&gt;            &lt;p&gt;&lt;strong&gt;&lt;font color='#0000FF'&gt;&lt;u&gt;Installation steps for Flex Builder Linux Alpha in detail:&lt;/u&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;          &lt;/blockquote&gt;          &lt;p align='justify'&gt;          a) Download 32 Bit version of Eclipse 3.3 (downloaded from &lt;a href='http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.3-200706251500/eclipse-SDK-3.3-linux-gtk.tar.gz&amp;amp;r=1&amp;amp;protocol=http'&gt;this location&lt;/a&gt;). &lt;br/&gt;            b) After you have un-tarred eclipse into some other location… say /home/arun/FBLinux/… You now have eclipse in /home/arun/FBLinux/eclipse/eclipse.exe &lt;br/&gt;            c) Without installing Flex builder Linux, ensure you can launch eclipse from your terminal using "./eclipse" (from that directory).. &lt;br/&gt;            d) Verify when asked for “workspace” choose new custom location for workspace (say /home/arun/FBLinux/eclipse/&amp;lt;NewWorkspaceDirectory&amp;gt;/)&lt;br/&gt;            e) Verify eclipse launches fine without any problem and you see the “Welcome page” (of eclipse)&lt;br/&gt;            f) Open your terminal&lt;br/&gt;            g) Type “java –version” and check what is the version of JRE you are running. Lets try to install JRE 1.5 (if you have a latest than this or earlier than this)&lt;br/&gt;            h) Please try installing JRE 1.5 from &lt;a href='http://java.sun.com/javase/downloads/index_jdk5.jsp'&gt;this location&lt;/a&gt;.  Please find “Java Runtime Environment (JRE) 5.0 Update 12” click on the Download button related to this.. Click on “Accept license”… Download the file “Linux Self-extracting file” (jre-1_5_0_12-linux-i586.bin)… Use “sh jre-1.5xx.bin”) to start installing this new JRE to a folder (say on your desktop… example: /home/arun/Desktop/jre-1.5.0.12/ directory).. It should be 32 bit version if you are not downloading from what is told here..&lt;br/&gt;            i) Use the command “export PATH=/home/arun/Desktop/jre-1.5.0.12/bin:$PATH” (which sets the jre bin path priority to any other path on your machine). &lt;br/&gt;            j) Echo $PATH, verify you see “/home/arun/Desktop/jre-1.5.0.12/bin” in the beginning of any other path.&lt;br/&gt;            k) Type “java –version” and verify it shows 1.5 version from Sun Microsystems.&lt;br/&gt;            l) Now navigate to /home/arun/FBLinux/eclipse/ directory&lt;br/&gt;            m) Use ./eclipse and launch eclipse now. Verify it launches eclipse fine. Open your Window-&amp;gt;Preferences-&amp;gt;Java-&amp;gt;Installed JRE and verify it uses JRE 1.5 as you installed above. If its not present, please add this in the list and make it default.&lt;br/&gt;            n) I assume you have downloaded flexbuilder_linux_install_a1_100207.bin (downloaded installer file with this sort of name) into directory say /home/arun/downloads/ location&lt;br/&gt;            o) Staying/Being in the same terminal, navigate to /home/arun/downloads/ location and use ‘sh flexbuilder_linux_install_a1_100207.bin”&lt;br/&gt;            p) Installer should launch now with a splash screen showing "Flex Builder Linux" and shows you a UI for installation...&lt;br/&gt;            q) Accept the EULA&lt;br/&gt;            r) Choose the location where you would want to install (Adobe_Flex_Builder_Alpha) – Say create a directory as here - /home/arun/FBLinux/Adobe_Flex_Builder_Alpha/&lt;br/&gt;            s) Choose the eclipse installed location directory (say /home/arun/FBLinux/eclipse directory)&lt;br/&gt;            t) Choose to install Flash player plugin that is provided with the installer (keep the check box checked.. don’t uncheck it)... This is a debug version of flash player browser plugin that is required for debugging flex applications from with-in the IDE..&lt;br/&gt;            u) Proceed with installation and Click finish in the Install&lt;br/&gt;            v) Now in the same terminal.&lt;br/&gt;            w) Navigate to the directory (ex: /home/arun/FBLinux/Adobe_Flex_Builder_Alpha/ directory). You will see a script named “Adobe_Flex_builder.sh”..&lt;br/&gt;            x) Use ‘sh Adobe_Flex_builder.sh’ and verify it launches eclipse fine.&lt;/p&gt;          &lt;p align='justify'&gt;Later on keep using the "Adobe_Flex_builder.sh" to launch Flex builder again after exiting... Read the release notes on what it does !! Happy RIA Dev on linux..&lt;/p&gt;          &lt;p&gt;Keep me posted if you find any issues.&lt;br/&gt;          &lt;/p&gt;          &lt;p/&gt;          &lt;p&gt;&lt;br/&gt;                                          &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-4057021878910573360?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/4057021878910573360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=4057021878910573360' title='27 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4057021878910573360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4057021878910573360'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/10/installing-flex-builder-linux-alpha.html' title='Installing Flex Builder Linux Alpha'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>27</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-6577251637286074602</id><published>2007-10-03T09:01:00.001-04:00</published><updated>2007-10-03T09:01:24.700-04:00</updated><title type='text'>Flex Builder Linux - Unveiled</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Time for all those linux geeks intending for an RIA development using Flex... &lt;a href='http://labs.adobe.com/technologies/flex/flexbuilder_linux/'&gt;Flex Builder Linux&lt;/a&gt; is launched in the Adobe Labs....  Its an Alpha release of the product....  Time for linux junta to have hands-on working on their development of flex apps using this IDE. &lt;br/&gt;  I shall walk you all with my experiences of the same as i go on describing more about it...  &lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-6577251637286074602?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/6577251637286074602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=6577251637286074602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6577251637286074602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6577251637286074602'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/10/flex-builder-linux-unveiled.html' title='Flex Builder Linux - Unveiled'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-7917224791712522908</id><published>2007-09-20T08:41:00.001-04:00</published><updated>2007-09-20T08:41:47.933-04:00</updated><title type='text'>Not all of them will have a solution !!</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;While i take sometime to explain the code i have written to generate the same using flex, i was thinking if all the puzzles that get generated randomly will have a solution or not?&lt;/p&gt;          &lt;p&gt;Well the Answer is NO... Not all of them will lead to a solution...&lt;/p&gt;          &lt;p&gt;Can i prove it?&lt;/p&gt;          &lt;p&gt;There are different ways of proving it. &lt;/p&gt;          &lt;p&gt;a) What are the possible number of cubes that can come of this format. 9! (nine factorial - Empty cube can occur in 9 positions and all the other 8 numbers can come at each position without repetetion i.e., 9x8! = 9!). We have to prove all 9! cubes will lead to a solution..&lt;/p&gt;          &lt;p&gt;b) Prove using induction. Say Cube n has a solution, Cube k+1 has a solution if, k+n has a solution then all 9! cubes will have a solution&lt;/p&gt;          &lt;p&gt;c) Proof by contradiction. Find one cube among the 9! that does not have a solution which proves that not all of them will have a solution....&lt;/p&gt;          &lt;p&gt; &lt;/p&gt;          &lt;p&gt;I tried the third way - "Proof by Contradiction"... (not sure if this is the name i have to give it for)..&lt;/p&gt;          &lt;p&gt;If you start looking at a 2X2 Cube. You will find that there is one possible way by which you cannot reach to a solution... What is it ?? See below:&lt;/p&gt;          &lt;p&gt;      &lt;img height='143' width='188' src='http://www.arunkumarm.com/games/puzzle.PNG'/&gt; &lt;/p&gt;          &lt;p&gt;Can you arrange it in the order so that it becomes 1,2,3 (1 and 2 in the first row in that order)?&lt;/p&gt;          &lt;p&gt;No you cannot. Reason... Imagine 2x2 Cube elements as running in circle... (circular list!) 1-&amp;gt;3-&amp;gt;2 and remember even if you go back or forth, possible combinations are the following&lt;/p&gt;          &lt;ul&gt;            &lt;li&gt;1-&amp;gt;3-&amp;gt;2&lt;/li&gt;            &lt;li&gt;2-&amp;gt;1-&amp;gt;3&lt;/li&gt;            &lt;li&gt;3-&amp;gt;2-&amp;gt;1 &lt;/li&gt;          &lt;/ul&gt;          &lt;p&gt;Its very simple that we cant get any order other than this. So we cannot reach 1-&amp;gt;2-&amp;gt;3 state at all. &lt;/p&gt;          &lt;p&gt;Now i say that every Cube will have atleast one 2X2 cube inside it. See the example below for a 3x3 cube where assume all the other cells have "Valid Data already filled" and only this 2X2 data forms a circular loop... Now does it have a solution? I say NO. &lt;/p&gt;          &lt;p&gt;&lt;img height='233' width='298' src='http://www.arunkumarm.com/games/puzzle2.PNG'/&gt;   &lt;/p&gt;          &lt;p&gt;Here is an application if you want to try it out...&lt;/p&gt;          &lt;p&gt;            &lt;object height='481' width='703' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'&gt;              &lt;param value='http://www.arunkumarm.com/games/MyCheckerBox_NoSolution.swf' name='movie'/&gt;              &lt;param value='high' name='quality'/&gt;              &lt;embed height='481' width='703' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' quality='high' src='http://www.arunkumarm.com/games/MyCheckerBox_NoSolution.swf'/&gt;            &lt;/object&gt;             &lt;br/&gt;                                                                                                                                                  &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-7917224791712522908?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/7917224791712522908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=7917224791712522908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/7917224791712522908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/7917224791712522908'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/09/not-all-of-them-will-have-solution.html' title='Not all of them will have a solution !!'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-4882980984247755969</id><published>2007-09-20T01:14:00.001-04:00</published><updated>2007-09-20T04:05:28.239-04:00</updated><title type='text'>Small Game in Flex</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;            &lt;object height='391' width='626' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'&gt;                        &lt;param value='http://www.arunkumarm.com/games/MyCheckerBox.swf' name='movie'/&gt;              &lt;param value='high' name='quality'/&gt;              &lt;embed height='391' width='626' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' quality='high' src='http://www.arunkumarm.com/games/MyCheckerBox.swf'/&gt;            &lt;/object&gt;          &lt;/p&gt;          &lt;p&gt;Download the &lt;a href='http://www.arunkumarm.com/games/MyCheckerBox.swf'&gt;game here&lt;/a&gt;... by right click and choose           "Save AS" and save the SWF.. Open the SWF in your browser.. if it doesnt play then you are running an older version of flash player.. please upgrade to Flash player 9 and it works pretty fine... &lt;/p&gt;          &lt;p&gt;An Enhanced version of the same is here again:&lt;/p&gt;          &lt;p&gt;                        &lt;object height='677' width='646' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'&gt;                        &lt;param value='http://www.arunkumarm.com/games/DoubleCheckerBox.swf' name='movie'/&gt;              &lt;param value='high' name='quality'/&gt;              &lt;embed height='677' width='646' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' quality='high' src='http://www.arunkumarm.com/games/DoubleCheckerBox.swf'/&gt;            &lt;/object&gt;                      &lt;/p&gt;          &lt;p&gt;Download the &lt;a target='_blank' href='http://www.arunkumarm.com/games/DoubleCheckerBox.swf'&gt;game here&lt;/a&gt;... by right click and choose           "Save AS" and save the SWF.. Open the SWF in your browser.. if it doesnt play then you are running an older version of flash player.. please upgrade to Flash player 9 and it works pretty fine... &lt;/p&gt;          &lt;p&gt;          &lt;br/&gt;                                                  &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-4882980984247755969?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/4882980984247755969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=4882980984247755969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4882980984247755969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/4882980984247755969'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/09/small-game-in-flex.html' title='Small Game in Flex'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-7335486785032940902</id><published>2007-09-11T09:39:00.001-04:00</published><updated>2007-09-11T09:39:21.190-04:00</updated><title type='text'>Ajax and RIAs</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p align='justify'&gt;I was welcomed today in my office with conference room GOA where Ananth (my Sr. Engg. mgr) and Rakshit (Coldfusion developer) set the agenda for giving insight into the world of RIAs.&lt;/p&gt;          &lt;p align='justify'&gt;Ajax techniques - Hidden frame technique, Hidden iFrame technique, XMLHttp technique.. Ajax - XML-Dom Parser, Ajax Patterns... XPath, XSLT... JSON Data Format, Firebug, REST, XML RPC, SOAP, AjaxStub... Coldfusion for Ajax, Spry framework, spry effects, AIR introduction, hello world sample, Packaging AIR Apps, Using Dreamweaver or Flex Builder to build apps.. Building mashup applications using Ajax, AIR ... It was an awesome training atleast for a beginner like me.. i feel this is a real good start to start from this... &lt;/p&gt;          &lt;p align='justify'&gt;I have worked on developing database driven, web based applications using J2EE... But wow.. Ajax is the Web 2.0 now taking it to the next level... Let me also take some time to understand how Silverlight and JavaFaces work... I my next posts i would try to describe my understanding of each of them with an example to the best of my knowledge... &lt;br/&gt;                          &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-7335486785032940902?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/7335486785032940902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=7335486785032940902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/7335486785032940902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/7335486785032940902'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/09/ajax-and-rias.html' title='Ajax and RIAs'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-3028408284611018281</id><published>2007-09-10T23:58:00.001-04:00</published><updated>2007-09-10T23:58:18.171-04:00</updated><title type='text'>Apache Projects</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;If you think you know about "Apache Web Server" and "Apache Tomcat"... here is the complete list of apache projects... They are wide spread... &lt;a href='http://www.apache.org/dyn/closer.cgi'&gt;http://www.apache.org/dyn/closer.cgi&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-3028408284611018281?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/3028408284611018281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=3028408284611018281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3028408284611018281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/3028408284611018281'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/09/apache-projects.html' title='Apache Projects'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-6253360448641987743</id><published>2007-09-10T08:42:00.001-04:00</published><updated>2007-09-10T08:42:39.974-04:00</updated><title type='text'>Float vs Double in Java</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;font color='#FF0000'&gt;float x=2.3;&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font color='#0000FF'&gt;if(x&amp;gt;2.2) {&lt;br/&gt;   System.out.println("X is greater than 2.3");         &lt;br/&gt;            }              &lt;/font&gt;&lt;br/&gt;             &lt;br/&gt;             What is the output of this program in Java..&lt;br/&gt;             Ans: Compilation fails.&lt;br/&gt;             Solution: 'x' is a float variable. and '2.2' gets converted to 'double'. we cannot compare a float and a double. We need to mention it as 'x&amp;gt;2.2f' for the above code to print the output.             &lt;br/&gt;                  &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-6253360448641987743?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/6253360448641987743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=6253360448641987743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6253360448641987743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6253360448641987743'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/09/float-vs-double-in-java.html' title='Float vs Double in Java'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-6755705098323915446</id><published>2007-09-10T08:37:00.001-04:00</published><updated>2007-09-10T08:37:42.745-04:00</updated><title type='text'>Sun Certifications</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;If you plan to take up - This is the ladder for you...    &lt;br/&gt;          &lt;img height='188' width='590' src='http://www.sun.com/training/images/certpathJava.gif'/&gt;&lt;br/&gt;          &lt;br/&gt;          Read here for a complete overview of the same - &lt;a href='http://www.sun.com/training/certification/java/index.xml'&gt;http://www.sun.com/training/certification/java/index.xml&lt;/a&gt;        &lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-6755705098323915446?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/6755705098323915446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=6755705098323915446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6755705098323915446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/6755705098323915446'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/09/sun-certifications.html' title='Sun Certifications'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-2470117235857854600</id><published>2007-09-10T08:28:00.001-04:00</published><updated>2007-09-10T08:28:21.265-04:00</updated><title type='text'>J2EE Design Patterns</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='justify'&gt;&lt;a target='_blank' href='http://java.sun.com/developer/technicalArticles/J2EE/despat/'&gt;http://java.sun.com/developer/technicalArticles/J2EE/despat/&lt;/a&gt; is one good place to study about the J2EE Design patterns. They are very good. Design patterns help you solve a business problem (depending upon your requirement, you choose which pattern - which was already implemented successfully by some one - suits you and you just choose that one)... its very good to learn the design patterns immediately after you are done with your learning of specific technologies or may be in parallel. &lt;br/&gt;          &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-2470117235857854600?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/2470117235857854600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=2470117235857854600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2470117235857854600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/2470117235857854600'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/09/j2ee-design-patterns.html' title='J2EE Design Patterns'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-5413942794922929457</id><published>2007-09-10T07:02:00.001-04:00</published><updated>2007-09-10T07:02:02.727-04:00</updated><title type='text'>boolean vs int in Java</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;Some of us might think C and Java might behave the same manner... &lt;br/&gt;            for example, the code below:&lt;/p&gt;          &lt;p&gt;&lt;font color='#FF0000'&gt;int x = 3;&lt;/font&gt;&lt;br/&gt;            &lt;font color='#3300CC'&gt;if(x=4) {&lt;br/&gt;    System.out.println("X is assigned value 4");        &lt;br/&gt;            }          &lt;/font&gt;&lt;br/&gt;            &lt;/p&gt;          &lt;p&gt;&lt;font color='#CC0000'&gt;if(x) {&lt;br/&gt;   System.out.println("Value of X is 4");         &lt;br/&gt;            }             &lt;br/&gt;          &lt;/font&gt;            &lt;br/&gt;            What is the output of the above programs in Java?&lt;br/&gt;            Ans: Compilation fails.&lt;br/&gt;            Reason: The 'if()' Condition in java expects a boolean argument. when we assign x=4, it returns an integer which is the value of 'x' i.e., 4. &lt;br/&gt;                          &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-5413942794922929457?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/5413942794922929457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=5413942794922929457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5413942794922929457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/5413942794922929457'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/09/boolean-vs-int-in-java.html' title='boolean vs int in Java'/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4816888726776350423.post-8799557901747555310</id><published>2007-09-10T06:44:00.001-04:00</published><updated>2007-09-10T06:44:13.823-04:00</updated><title type='text'>Welcome </title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='justify'&gt;Having come across a lot of stuff related to the technologies i am working on, i have decided to jot down some of the thoughts (intricacies involved) in some of them where ever i encounter. I would also make sure this would serve as a simple teasers as well. Its hard to get everything at one place, but yes.. this is not a place for you to learn about something which is already existing else where... probably somethings that i encounter and i feel its worth noting it down (if its not so simple to understand)... Let me kick off... Sorry about my wierdo thoughts in these programming languages.. definately this would make you feel interesting in some or the other manner... There i go... &lt;br/&gt;          &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4816888726776350423-8799557901747555310?l=ria.arunkumarm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ria.arunkumarm.com/feeds/8799557901747555310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4816888726776350423&amp;postID=8799557901747555310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8799557901747555310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4816888726776350423/posts/default/8799557901747555310'/><link rel='alternate' type='text/html' href='http://ria.arunkumarm.com/2007/09/welcome.html' title='Welcome '/><author><name>iLearner</name><uri>http://www.blogger.com/profile/11719311625832163553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://www.arunkumarm.com/blogphotos/amadas_new.png'/></author><thr:total>0</thr:total></entry></feed>
