Next Stop 360 Flex Indy

Starting Monday May 18, 2009 fun begins at Indianapolis. No, not the car race; its 360 Flex!I am speaking 360 Flex 360 Flex is a unique and special event for many reasons, namely:

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

I am organizing a session on “Rich Finance Widgets” this coming Monday. “Rich Finance Widgets” are revolutionizing the way we access and distribute financial information and make trading and investment decisions. Come and join me this Monday May 4, 2009 at 10.00am EDT and learn more.

rich_finance_widgets1

Event details:
Starts: Monday May 04, 2009, 10:00AM
Ends: Monday May 04, 2009, 10:45PM
Event Type: Training/Seminar
Location: This is a virtual event.
Price:
Website: http://connectpro61354022.acrobat.com/rich-finance-widgets/
Industry: financial services
Keywords: Finance, RIA, Flex, Reporting, Analytics, Risk, Compliance
Intended For: Technology managers, risk managers, analysts and money managers
Organization: Saven Technologies Inc. (www.saventech.com)
Learn to leverage RIA to understand the data patterns and predict the market movement. Use rich analytics and reporting for performance analysis, compliance and risk management.
The 45 minute session will explain the power of rich finance widgets. The session will –
  • 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.

chicago_flex_developers_group

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.

New York Scala Enthusiasts

New York Scala Enthusiasts

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.

The Actors Library

Scala's Actors Library for Concurrency

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.

Integrating Java and RIA -- a view through the pipes

Integrating Java and RIA -- a view through the pipes

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:

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:

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:

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 – 

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 –

friendsofed.com Hosed!

friendsofed.com Hosed!

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:

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.

 

Common Sense Reasoning

Common Sense Reasoning

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 –

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

 

Speaking on Flex 4 (Gumbo)

Speaking on Flex 4 (Gumbo)

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.

Next Page →

FireStats icon Powered by FireStats