Next Stop 360 Flex Indy
Starting Monday May 18, 2009 fun begins at Indianapolis. No, not the car race; its 360 Flex!
360 Flex is a unique and special event for many reasons, namely:
- Its the one and only event dedicated completely to Flex (and AIR).
- Its an informal event that is run for the community, by the community. Till this edition, there wasn’t much of a formal call-for-participation process either. Interested folks contacted Tom and John and if the topic was interesting and there was enough enthusiasm and originality, you presented your wondeful idea at the conference. This time the submission overwhelmed the nice mom-and-pop process and forced one to have some sense of formalism. Yet, it was still a comfortable process, full of open dialogues and community participation. No big wordy contracts and no restrictions on how you can share your material.
- Most, if not all, sessions cover advanced stuff. Hardly any 101(s) and Introductions. This is a huge plus for serious Flex developers.
- No big executive pretending his or her creation as the new wonder of the world. Aren’t we sick of the demo gods?
- A very affordable conference. Tell me how many $500 something tickets get you three days of intense sessions, lots of free meals, evening parties and more!
- Lots of opportunity to mingle and mix with all members of the community. Some of the best names in Flex (developers, authors, service providers, evangelists and the product makers themselves) gather at every 360 Flex. This is one of the best ways to get to know people who are deep into Flex.
So for all these reasons and more, I have been speaking at 360 Flex over the last few editions. This time I will be there again!
On Wednesday (May 19, 2009), I speak on “Flex in a PDF”. (You can check the schedule out for all the sessions and their timings) I am going to talk about the relationship between Flex and PDF and explain how not only Flex data but its entire rich experience can be housed inside of a PDF. PDF is a universally liked portable document format. With inclusion of Flex inside it, you have yet another access point covered; thereby getting your application closer to the universal access goal. In addition, this harmonious existence of “Flex in a PDF” opens up many newer forms of collaboration that bolster effectiveness and productivity enhancement. Stop by my talk to learn more.
I will write about the session and put up the presentation material after the show.
Rich Finance Widgets
- Demonstrate how rich finance widgets can help you present, visualize, filter and analyze data. (Saven Technologies has built a set of powerful rich widgets which can help enhance your ROI and reduce your time to market)
- Explain how such rich finance widgets can be used, extended, aggregated and customized under typical corporate deployment infrastructure.
High Performance Flex Applications
Coming Thursday (April 16, 2009) evening I speak on tuning Flex applications for superior performance at the Chicago Flex and AIR Developers Group. If you are in Chicago and are a member of this developers group then I hope to see you then. If you are in Chicago and are interested or curious about these technologies then being part of this group would be a good choice.
The session starts at 5.30pm with networking over some snacks. The presentation will start at 6.00pm and expect it to go on till 7.30pm. Details about the event can be obtained from the Chicago Flex site’s official write-up on the April Meeting on tuning applications for superior performance .
Speaking on Scala Actors at NY Scala Enthusiasts
Thanks to Dustin Whitney, we have a meetup for Scala enthusiasts in New York City.
I speak on the actors library at the meetup this (March 30, 2009) evening. Last year, I spoke on the same topic at SD Best Practices in Boston. This presentation today will be structured on similar lines to the talk at Boston. Its an introductory but fairly thorough walk through the concepts of actors and threadless concurrency in Scala. Scala brings this great Erlang style concurrency to the JVM and it is something every Java (and of course Scala) developer should peek into, if not learn thoroughly.
If you are in New York City and care for Scala actors then do drop by.
On Integrating Java and RIA at the Princeton JUG
Speaking on integrating Java and RIA at the Princeton Java Users Group tomorrow (March 25, 2009). The session talks about the pull and push based models for communication between a Java server and a rich web application. The remoting and messaging infrastructure within BlazeDS and both Flex and JavaScript based front-ends are considered in the discussion. This session focuses on the view through the pipes, especially through those that connect the two layers. The session is a mix of theory, code and the current practice.
If you are interested in the topic and are in New Jersey or Pennsylvania (in the areas close enough to New Jersey), then come join us at the meetup.
The Princeton JUG is a pretty vibrant community of Java developers. It is lead and managed by a famous voice of the Java and the RIA communities — Yakov Fain.
Flex 4 and SD West 2009
Last week I spoke on Flex 4 at SD West 2009. Apart from the warm California weather, I enjoyed the great conference. It had the usual impressive line-up of speakers and attendees, a good number of expo participants and the annual JOLT awards ceremony.
The flagship topic of the conference, as is at most SD conferences (SD Best Practices and SD West), was “agile” software development. Added to it was a pinch of DSL(s), good old C++, Java, .Net, cloud computing, web2.0, security, testing and the now much less talked about data structures and such. The conference was structured around the following tracks:
- Agile Processes, People & Methods
- C++
- Cloud Computing
- Java
- Modeling & Design
- .NET
- New Horizons
- Pervasive Parallelism
- Requirements & Analysis
- Security
- Testing & Quality
- Web 2.0 and Beyond
- Web Services, REST and SOA
Considering that conferences are increasingly getting specialized, the diverse set of tracks might make you dizzy. However, things were not that confusing though. There was clearly some old love for C++ and favor for the wide spread Java and .Net and as mentioned the theme of agility pervaded through them all.
The Web 2.0 and beyond track, in which my Flex 4 presentation was categorized, was not really the central focus of this event, although the track included some well known speakers like Neal Ford and Allen Holub. So my initial feeling about number of attendees for my session (Introduction to Flex 4) was quite mixed. At one level I anticipated complete indiffernce from the masses and at another I suspected the lure of the “new new thing” pulling them to me. Finally, ended up having a room full of attendees and am very happy about it. Better still, I think I probably made a good presentation, cause hardly any one was distracted during the session or walked out in the middle. There were a ton of questions and active participation. From the questions, it was clear some knew Flex well and had possibly used it for building real life applications. However, it was also apparent that some knew just the bare essentials of Flex.
My presentation focused exclusively on the concepts and stayed away from discussing the API (considering its volatile current state). I did show some working code and a whole lot of partial code snippets, which was much appreciated. From prior experience, I am convinced the developer in us gets quite excited on seeing interesting code bits and goes off to sleep when exposed to reams of it sprayed all over the slides. All-in-all I think many people felt happy at the end of the session having discovered part of the future now.
I can’t post the original presentation online due to the contractual obligations with the conference organizers. You can buy the recording from them though. I plan to run a set of public presentations on Flex 4 and I promise to make them available online soon.
Apart from speaking at the event, I was also acting as the proxy JOLT award receiver on behalf of my friends at ZeroTurnAround, who could not make it to the conference. They have a pretty cool tool called JavaRebel, which alleviates the pain of repetitive compile-deploy cycle during Java development. Wonder, if my Ruby friends who love to bad mouth Java’s shortcoming and overhead related to compile-deploy have to say anything about it. JavaRebel won the JOLT productivity award in the utilities category this year. Congratulations folks!
It was a hurried up trip for me as usual and as it always happens on my way back to New York, I spent a good amount of time at the SFO airport and on the flight. Got back and was immediately caught up with my next set of endeavours. Life seems perpetually so busy, but honestly it isn’t a bad thing in these recessionary times. What say?
Flex Architecture and Design Patterns
A lot of my readers and clients have been asking for advice and help around getting Flex application architecture right. In some cases, these capable developers are struggling to morph their initial fancy toys into robust applications.
If you have seriously dabbled with Flex, you probably can empathise with them. However, if you haven’t delved into Flex at all or have minimally glanced at its surface, you are probably stunned in amazement and possibly ridiculing the indiscipline and lack of knowledge of these developers. Interestingly though, the shortcoming isn’t of the developers alone and the problems aren’t because the framework is flaky. Its just that you can code yourself into a corner despite your proficiency in MXML and AS3 and this problem is not new. The fact that: “fluency in a language and the core framework != fluency in building an application effectively using it” is well established across multiple languages. We have all seen similar problems surface with C++, Java, .Net, PHP, Python, Perl, Ruby, JavaScript and pretty much any other widely used language.
Over the years the community of software developers have questioned, theorized and debated over the root causes of failures emerging from bad application design and inappropriate architecture. The viewpoints and thoughts are varied (An illustration of which is beyond the scope of this post. I may write about it in a separate post in future.) and there is no consensus on the right solution yet. However, there are some points of agreement and universal appreciation. One such topic of agreement, is the notion of leveraging design patterns.
Design patterns have existed from the time the discipline of software development was a toddler back in the 70s, when it learnt to avoid its initial mistakes. Back then though, these patterns were not cataloged or adapted for specific areas of applicability. Now as the discipline is maturing into a teenager towards the end of the first decade of the 21st century, design patterns are entering the standard vocabulary of an average developer.
So, a Flex/AIR developer today can learn a lot of the theory about essential design patterns from the Gang of Four book or browse through the useful bunch of patterns applicable to enterprise application architecture. In addition, he or she could pick up one of the two design patterns books that pertains to AS3, namely:
- Advanced ActionScript 3 with Design Patterns
- ActionScript 3.0 Design Patterns: Object Oriented Programming Techniques
Armed with all this knowledge, a Flex/AIR developer can hypothetically apply these gainfully to a real project. However, at this last link in the chain the story often breaks. Developers are left with tons of open questions around how to exactly use all their learning in the context of the core Flex framework features.
Its not a trivial effort to wire design patterns in conjunction with the existing framework classes. Using structural patterns with existing class heirarchies is not automatic and implementing behavioural patterns on top of the default flow is not intutive. In addition, you are left guessing on what could be implemented with AS3 alone and what could also rope MXML in.
At this stage, some developers just give up and some others seek refuge under any of the existing aggregations, especially if it seems to have official endorsement (read “Cairngorm”). Now, “giving up” can lead to code spaghetti and “seeking refuge” blindly can leave you in an obfuscated labyrinth, especially when you are deep into transforming your toy into a serious business application.
What then is a solution to the problem? How can one get Flex application architecture right?
To answer these questions to an extent, I wrote a chapter titled : “Leveraging Architectural and Design Patterns” in my book — Advanced Flex 3. That chapter neither addressed all the issues not did it include details on implementing these patterns in Flex. It merely discussed the topic at a very high level. Even then, many found it immensely useful. Going by the positive feedback and the following questions from the readers, I could guess that the thirst to learn more about Flex design patterns remains unquenched.
Therefore, I am starting on 3 related yet distinct initiatives, which might help you all. These are:
- Thorough hands-on Flex architecture mentoring sessions
- Three chapters instead of one on architecture and design patterns in Advanced Flex 4 (the next version of Advanced Flex 3)
- A free book — “Flex Design Patterns” — on all aspects of architectural and design patterns in Flex. Chapters from which will be available for download right after they are written
In addition I am working actively on getting Fireclay ready for prime-time. I hope Fireclay will be a compelling and unique Flex framework when its version 1.0 is released.
If you would like to learn a lot by doing and want to gain substantial mastery in 3 days flat, then join me at the Flex Architecture BootCamp, the first of which is coming to New York between March 23 and March 25, 2009. Find out the details about this event at the Flex Design Patterns Eventbrite site.
At the Flex Architecture BootCamp, you will –
- Learn how to build enterprise grade Flex applications
- Learn to leverage the common design patterns in Flex and ActionScript 3 applications
- Understand what Cairngorm, PureMVC, Mate, Prana and Fireclay are all about
- Learn to preempt problems involved in building complex enterprise grade Flex applications. Build applications reliable, scalable and performant from the beginning.

More information online at the Flex Architecture BootCamp eventbrite site. In a few days I will announce the schedule for this BootCamp at other cities, which include Chicago, Atlanta, Dallas and Seattle.
When you register for the bootcamp at New York, don’t forget to avail a $75 discount using shanky_org as the discount code.
In future posts, you will hear from me on when I may start writing Advanced Flex 4 (its definitely not happening till Flex 4 beta is out and that I think isn’t happening until May 2009).
Information on the free book — Flex Design Patterns — will be available soon. I am currently trying to setup a repository and a methodology to manage the writing process. I am keen to use the docbook format and may use the GitHub to host all content and code. If you have any suggestions or recommendations on any alternative tools, then please chime in.
That it for now, but you know a lot’s coming, so stay tuned!
friendsofed.com Hosed!
Unfortunately, friendsofed.com is unavailable!
Where you could normally see tons of information on books they had published, code downloads associated with those books and more, stands a page advertising domain renewal services. This is what the page looks like today –
I was made aware of this rather awkward situation by readers of my book Advanced Flex 3. The site is down means they can’t get hold of the code for the examples in the book anymore. Oops! that no good.
So I am writing to inform all my readers of the following:
- I don’t know why the site is down but my guess is that it relates to some administrative goof-up. If you read the top right corner of the current page, it says — “friendsofed.com expired on 2/15/2009 and is pending renewal or deletion“. Don’t worry I am hopeful normalcy will be restored soon. I sent a mail out to the publishers asking what happened. If I get to know why this has happened and when things will be back, then I will share that information with you for sure.
- I have setup a GitHub repository for the Advanced Flex 3 source code. The URL to the repository is: http://github.com/tshanky/advancedflex3. Its empty now but things should be there soon. In the near future I will co-ordinate with my co-authors and publishers and try and get the entire code up there. Then not only will you have an alternative place to grab the code from but it would also be possible for that code to continue to evolve.
That’s all for now. Thanks for your patience.
Prefixing Fx
Adobe’s Flex team seems inclined to move away from clean design.
Flex framework’s current stable version is 3.x and the Flex team at Adobe is actively working on getting the version 4.x ready this year. At this time, the core SDK of Flex 4, codenamed Gumbo, is evolving through an open source process. From peeking into its initial version, it looks promising as there are serious attempts to create a clean separation of behavior and presentation in the components, apart from the tons of nifty enhancements throughout the framework. (I promise to write about some of the forthcoming features soon)
However, one design decision in the midst of all this goodness seems rather odd and alarming. The Flex team is proposing to prefix Gumbo component names with the letters “Fx”. Lets try and understand what this means.
In Flex 3.x and 2.x you have a button component, which you access within a flex application using <mx:Button>. Here the name of the component is Button and mx is the namespace within which this component resides. Now in 4.x you still have the Button component but it deviates majorly from the component by the same name in the 3.x or the 2.x version of the framework. Its possible developers may like to use both versions concurrently and that’s where there is a need for the two entities, i.e. buttons, (with the same name) to be identified distinctly.
Simply said, how do you make sure the two versions of Button work together without causing confusion in the program. The answer to this question is simple and time tested: Put them in different logical buckets.
This solution of putting things with same names into logically diferent partitions seems to work well in many situations. This is how two classes by the same name are differentiated — they are put under different package structures. For example a.b.c.Foo and x.y.z.Foo can co-exist as far as they are referred with their fully qualified names. This is how XML elements with the same name but from different schemas are reconciled. This is how variables with the same name but within different scopes are resolved.
However, this simple solution seems to evade the Flex team’s considerations. They believe logical partitioning (which translates to namespaces in the case of Flex components acessed by their XML tags) can be confusing for the beginners.
So they propose instead that we prefix the names of all components whoes names clash with existing ones with the letters “Fx”. In other words our <mx:Button> in Flex 3.x or 2.x, which by the way is affectionately now called “Halo”, becomes <FxButton> in Flex 4, which is also referred to as “Gumbo”.
If you use namespaces instead then this same Button in Gumbo will be <fx:Button>.
If we follow Adobe’s suggestion we may land up with something like this –
- Halo — mx:Button
- Gumbo — FxButton
- Mumbo (or whatever they choose to affectionately call the next version) — Fx2Button or FxFxButton or MumboFxButton
- Jumbo (possibly the following evolutionary version) — Fx3Button or FxFxFxButton or JumboFxButton
Would you not just call a button a Button and have the namespaces decide weather its from the Halo, Gumbo, Mumbo or Jumbo clan?
If you would like to help Adobe make a sensible decision in favor of namespaces (i.e. using fx:Button instead of FxButton for now) then please go ahead and vote for this bug on the Flex JIRA.
Speaking at SD West 2009
I am back from the Flex Camp at Chicago and onto a lot of Flex 4 stuff. Firstly I have started writing a book on Flex 4. Its a short book that will provide a head start to the early adopters. If you are one of those early Flex 4 enthusiasts, then keep watching this blog for updates on the book. I will write more about the book and its availability in a couple of weeks time when I have hopefully made substantial progress on that initiative. Secondly I am deep into the Gumbo subversion repository these days. Flex 4 is still cooking and so the only way to continue to understand its evolution is to keep peeking into the hot smoking oven. Thirdly, I am begining a 99 part quick tutorials and tips series on Flex at RIA Revolution. Fourth and finally, I will be speaking on Flex 4 at many venues starting next month. One such prominent venue is SD West 2009, which will include a lot of fantastic speakers and the JOLT awards ceremony. Hope to see some of you there.
















































































