Category Archives: Flex

Available for consultancy, training and development

I am available for consultancy, training and development services. Following is the rough list of things, I can provide consultancy, training or development services for:-

  • ActionScript 1.0, 2.0, 3.0
  • Adobe Flash/Flex
  • Adobe Integrated Runtime (AIR)
  • Training on Adobe RIA technologies
  • Architecture for RIA
  • Web Application Development
  • Design and Architecture
  • Development for LAMP
  • Integration Services for Flex/AIR with existing Web Apps
  • Development Setup for small teams
    • Subversion Version Control
    • Bug Tracking System (Trac, Wiki)
    • Training on Development Life Cycle
    • Backup Strategies
    • Development Sandbox Setup for RIA development

    JFYI! You can check out my linkedin profile to know more about me. I am based in India and have around ten (10) years of experience, during this period I have worked for Macromedia/Adobe, Yahoo!, Mixercast and TIS and worked as independent-consultant, freelancer, trainer and co-founder. I have been working on various technologies/platforms (some listed above).

    I am a programmer who enjoys solving users’ problems whatever it takes (technology is no constrain). Having said that, I am passionate about ActionScript/Flash/Flex/AIR and Web (in general) which happen to be my core competencies.

    PS: Do you think, this is a shameless sales pitch :-)

    Technorati tags: , , , , , , , , , ,,

    Yahoo! Live Upcoming mashup is live

    Another Yahoo! Live mashup which pulls data from Upcoming and shows on map. In this case, I used Yahoo! AJAX Maps instead of Yahoo! ActionScript 3.0 Maps.
    Currently this mashup is being used on Yahoo! Live WMC site for World Music Conference (WMC).
    You can see the mashup here. If you go to Yahoo! Live WMC site, you might notice my name there, Yahoo! Live guys are very kind to give the credit to me by putting my name there, though it’s currently misspelled :-)
    I generally don’t do shameless boasting or self-promotion, but in this case I feel good that one of my mashup makes to Yahoo! Live page :-)
    Technorati tags: , , , ,

    Adobe Flex in India – Interview

    Shashank Tiwari, principal architect at Saven Technologies and Oreilly network blogger, asked me of my views on Adobe Flex community in India and various other related things (jobs, startups, open source flex, java, ria, etc – all in the Indian context).

    Check out my two-cents (Interview) on O’reilly network.

    I would love to hear, what you guys think about it? Please let me know (comments, emails or IM).

    Thanks to Shashank for giving me this opportunity to share my views with a larger community.

    Technorati tags: flex, , , , , , , ,

    Adobe Online Store – not for India?

    I have raised this issue in past, Mrinal Wadhwa raises the same issue, where he is not being able to buy FlexBuilder 3.

    It’s hard to get in touch with resellers, most of the resellers have never heard of FlexBuilder (yeah true) and resellers want four weeks time to deliver, four weeks? I can finish a good small project in that time :-)
    I wonder, why we (people from India) can not buy software from Adobe online store? There might be reasons but is Adobe working to solve/fix those issues (tax or whatever)?

    BTW! This gives me another reason to evangelize opensource-flex. All the events, I attend, I say: We don’t need FlexBuilder, we can do everything with Flex SDK.

    Now I am going to say: We don’t need FlexBuilder, we can’t buy even if we want to, let’s not waste our time. Start using Flex SDK – that’s all we need :-)
    I am very hopeful, we would start seeing opensource tools for flex development. I would love to be part of any such project and can contribute in anyway – hey I am totally cool with Java, so count me in ;-)
    BTW! I have got some ideas, I would start some projects soon.
    Technorati tags: , , , , , , , ,

    Meet the Flex team

    Matt Chotin has posted some videos, where he creatively introduces us to most of the Flex/FlexBuilder team members and also talks about various behind the scene things.
    It’s really nice to see everyone, once upon a time I used to work with them.
    In one particular scene, I laughed loud when Alex Harui says “No more questions”. Most of the Flex team (Gordon, Deepa, et al) are very active, but Alex is like everywhere on high traffic flexcoders list. There was a time, Matt Chotin, Manish and I could be seen answering most of the questions on flexcoders.
    I am always interested in behind-the-scene stuff, be it movies, software or anything else. Thanks Matt for the videos.

    Check out the videos

    Technorati tags: , ,

    Flex India community grows more

    Mrinal posted about the (1000+) numbers, that is, number of members in Flex India community (flex-india). It’s really nice to see how number has grown, it surely validates that a lot more companies are using Adobe RIA technologies (Flex/Flash/AIR).
    Not very long back, almost same time last year, we started discussing how to build Flex/Flash/AIR ecosystem in India. Though figures are encouraging, I feel, we still have a long way to go. Following are things, I would personally like to see and do:-

    • More participation internationally (via flexcoders, blogs, etc)
    • More code contribution (components, libraries, etc)
    • More innovation (quality discussions, product development, etc)

    We know that, most of us (Indian developers) are driven by client’s requirement, which means most of the Indian companies are using Adobe RIA technologies because that’s a requirement. What I would like to see, more proactive approach towards technology adoption, once that happens, the vision (above points) would come true.
    I am sure, it would happen, I have been optimistic. I would try to my bits my way :-)
    Congratulations to everyone for achieving this milestone and all the best for future.
    Some of my blogs on Indian Flex/AIR community:-

    Technorati tags: , ,

    Adobe Flex 3.0, AIR 1.0 and OpenSource Flex

    News is out, everyone knows by now – Adobe Flex 3.0 and AIR 1.0 are released. Very interesting moments for many of us, specially teams who have been working for long time to make this release possible. I congratulate Adobe Flex and AIR team, thanks for developing tools/software/framework that makes our lives easier.

    Another thing, I am very excited about is the portal/website that would host all opensource stuff from Adobe. You can see Adobe Flex, BlazeDS and Tamarin there. I can see a lot of things on opensource.adobe.com,  source-repositories (Subversion) is the most interesting there ;-)

    Thanks Adobe, once again.

    Technorati Tags: , , ,

    Mashup = Yahoo! Live + Yahoo! Maps + Yahoo! Pipes

    After couple of hours, I have come up with simple mashup that uses Yahoo! Live API, Yahoo! Maps (AS3 library) and Yahoo! Pipes. This mashup, simply, shows live broadcasts (channels) on the map.
    Check out the mashup!
    I love new Yahoo! Maps AS3 libarary, Yahoo! Live and more than these, I love Yahoo! Pipes, it’s cool. I created a pipe in ten minutes and which saved (actually deleted) at least fifty (50) lines of code to handle Yahoo! Live API calls, results, get geo-data and aggregate.
    Consuming Yahoo! Live API requires many HTTP requests to get data, whereas with Yahoo! Pipes, one request is good enough. I know, Yahoo! Pipes is doing most of thing on it’s server but it does help us and users.
    Yahoo! Live server doesn’t have liberal crossdomain.xml (policy-file), so I needed proxy on my server, that’s not even required with Yahoo! Pipes, so lots of server-bandwidth saved :-)
    Check out the Yahoo! Pipe, I created.
    You might not see all the live-channels on map because most of the Yahoo! Live users have not updated their profile with their locations(city, state, country) in their profile. So it’s hard to get geo-data with existing API, hence those channels are not shown on map.
    Sometimes you might see inactive channels on map, that’s due to Y! Pipes’ caching, I am looking into it.
    I would write some more details of the application and code. Once I am done with:-

    • channels within markers
    • status messages
    • AIR app – each channel can be unpinned to a native-window
    • drag & drop markers on desktop to create shortcuts to channels
    • and other things.

    Technorati tags: , , , , ,

    Is MXML presentational markup?

    Some random thoughts/questions:-

    Is MXML presentational markup? I think, it is.

    How does the idea of semantic web/html and microformats fit into Flex based RIAs?

    How can we design applications that can be progressively enhanced or gracefully degraded?

    MXML seems to be very powerful, hence very useful. If best-practices are not followed, it’s very easy to end up with bad-design/app? That’s true for AJAX (= DTHML now) also.

    What should/could be the design of future flex framework (s) so that lightweight runtimes (FlashLite etc) can run flex-applications without requiring more powerful hardware and latest capabilities on devices?

    MXML can be broken down into subsets:-

    • Schema for application/component structure
    • CSS for presentation – limited
    • ActionScript for behaviour/action
    • Data (XML/Model/inline-data)

    Right now it’s very easy to mix all these. Experienced developers have found different ways to keep things separated but no standard as such.
    Shouldn’t there be a standard way of drawing a line of separation between these as a part of development workflow/requirement? I believe, same is true in AJAX world but things (best-practices, workflow, LSM, semantic, microformats etc) are well established there?
    Just wondering, if all these pieces can be separated within flex-framework, applications can be run on lightweight client by replacing cpu/memory intensive bits (which are required to parse/process/render one of the parts mentioned above) with compatible-lighter version of bits?

    Does this post makes sense? ;-)

    Never mind the subject, I wanted to ask one question and came up with many unanswered. I have answers for some but I would be posting after some more thinking. BTW! It’s good to work with different technologies/standards, it makes me think like this.
    Kevin Hoyt‘s latest post made me think some of these. Kevin has posted some more nice posts, one should read.

    Technorati tags: , markup, , ,

    Live Documents office-suite chooses Flash/Flex

    Sabeer Bhatia, one of the guys behind Hotmail, has been working on Live Documents, which has been announced a couple of days back. Live Documents is an office-suite for web and desktop (AIR?).

    It is interesting to see, Live Documents chose to use Adobe Flash/Flex as front-end technology.

    I read Zoho guys on Flash, I understand, it makes sense to use a technology that doesn’t have dependencies, easy to develop with, saves time, provides better experience to user and good for business. If Zoho guys think, they are achieving these goals with technologies of their choice, it’s totally fine. I would love to see how they respond to Live Documents release.

    But hey, there are some (Live Documents, Buzzword, SlideRocket etc) which think Flash/Flex is cool (faster to develop, easier to use, consistent experience and better for business).

    Technorati Tags: , , , , , , , , , , ,

    Some Adobe Flex/Flash related resources from India

    I have compiled a list of sites, mailing-list and bloggers from India. Most of them blog about Flash, Flex, RIA Usability, Web 2.0 etc.

    Website/groups:-

    Blogs:-

    Above list is partial. If I have missed something, please feel free to leave the URL (of blog, site, mailing-lists etc) in the comment. I would update the list.

    If you are Adobe Flex developer, you might want to register on International Registry of Flexcoders.

    Technorati tags: , , , ,

    A MXML component that embeds JavaScript in html

    I know subject line is confusing but I am not able to think a better one. I have written a Adobe Flex 2.0 component(JavaScript.as), which can be used as MXML tag in Flex 2.0 applications. You can write JavaScript code as text of this MXML tag. When your application loads, all that JavaScript code would be exported to HTML container’s context.

    Confused? Let code speak rather than me :)

    Sample MXML application using this component (test.mxml):-

    
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="com.abdulqabiz.utils.*"  width="100%" height="100%">
    <JavaScript>
    <![CDATA[
    var myName = "Abdul Qabiz";
    function saySomething (str)
    {
    alert (str);
    }
    function sayHelloWorld ()
    {
    alert ("Hello World!");
    }
    ]]>
    </JavaScript>
    <mx:Script>
    <![CDATA[
    import flash.external.ExternalInterface;
    private function invokeSayHelloWorld ()
    {
    ExternalInterface.call ("sayHelloWorld");
    }
    ]]>
    </mx:Script>
    <mx:Button label="invoke javascript sayHelloWorld () function" click="invokeSayHelloWorld ()"/>
    </mx:Application>
    

    HTML code that embeds test.swf(output of above code):-

    
    <html>
    <head>
    <!-- swfobject -->
    <script type="text/javascript" src="http://blog.deconcept.com/swfobject/swfobject_source.js"></script>
    </head>
    <body>
    <div id="flashcontent" class="playerContent" >You don't have Flash Player 9.</div>
    <script type="text/javascript">
    var swfObj = new SWFObject ("JavaScriptComponentTest.swf","JavaScriptComponentTest", "300", "300", "9", "#C0D4DD", true);
    swfObj.write("flashcontent");
    </script>
    <a href="javascript:void(0)" onclick="saySomething ('hey')" >invoke saySomething ()</a><br />
    <a href="javascript:void(0)" onclick="sayHelloWorld ()" >invoke sayHelloWorld ()</a><br />
    <a href="javascript:void(0)" onclick="alert (myName);">show myName </a><br />
    </body>
    </html>
    

    See an example Or Download (zip 133kb includes the SWF).

    The code is available under the MIT license.

    Disclaimer: I have only tested this in FireFox on Windows. So please drop a comment, if doesn’t work in your system.

    Update:
    March 6, 2007 – Fixed a bug, which popped-up after I implemented comment removal feature. Thanks to Joan for point it out.
    March 5, 2007 – Library has been updated, it can now handle comments in JavaScript code. It would basically remove all comments before injecting it in HTML container.

    How to get URL query-string variables within Flex application

    On flexcoders, someone asked, how to get the URL parameters in a Flex 2.0 application? By URL parameter, I mean the query-string variables, as shown below:

    http://yourserver/yourapp.swf?name=Joe&age=22 or http://yourserver/yourapp.mxml?name=Joe&age=22

    Note: To get the variables in flex via mxml file, you need server-side compilation of mxml files.

    You can get the values of the params using from

    mx.core.Application.application.parameters

    object, which contains the name-value pairs (hash-map).

    For example,

    mx.core.Application.application.parameters.name

    would return “Joe”, considering above example URL. You can find more information about this in livedocs: http://livedocs.macromedia.com/flex/20beta1/docs/00001300.html

    Then someone asked, what if your swf is embedded in custom html wrapper, how to get the query-string params inside swf?

    Most of us use ExternalInterface class in Macromedia Flash Player 8(onwards) to invoke some JavaScript functions and extract the value in ActionScript.

    I wrote a quick-and-dirty class in ActionScript 3, which would get the values of params from URL query-string for you. You don’t need any extra JavaScript code in HTML. The same logic can be used for any an ActionScript 2.0 running Macromedia Flash Player 8.
    QueryString class has following properties:-

    • parameters – an Object which contains the name-value pairs from query-string
    • queryString- String, this contains the entire query-string (url-encoded) name-value pairs.
    • url- String, this returns the complete URL of the wrapper page with query-string.

    See demo
    Download source files