Upcoming public Flex training and New Jersey User Groups

1.    Last year, the Princeton Java Users Group  that I’m leading became homeless. We lost the host that was giving us a place to meet and pizza.
2.    Last year, New Jersey Flex Users group ceased to exist – not sure why.  The Garden State, where every other person is in IT deserves better.
3.    Being a proud Jersey resident, the next week will be the second time I’m presenting this year… at Atlanta Flex User Group Atlanta. No, it’s not Atlantic City, NJ.  It’s Georgia.
4.    Flex and Java nicely compliment each other in lots and lots of real-world enterprise projects in the greater New York Area, which wouldn’t be able to run its IT operations without us, Jersey hero commuters who spent 3.5-4 hours a day getting through the tunnels and bridges to that famous island and back.
5.    Recruiters have hard times finding developers with Flex/Java skills.
6.    I’m ready to create and run a new Flex and Java Users Group in Central Jersey as soon as someone will offer a place to meet and pizza to eat. It has to be a meeting room that can fit at least 30 people.  This is all I’m asking for. The hosting company will be entitled for opening 5 minutes of each meeting announcing their products, or job openings. And people who attend users groups are real developers! If interested, send me an email at yfain11 at yahoo.com.
7.    My role is to bring qualified presenters and present myself on the subjects that interest enterprise Flex and Java Developers.
8.    All of the above is a just part of my contribution to Flex and Java community.
9.    Now let me take care of the bills. I’ll be running a week of live online introductory Flex 4 training on the week of July 12, 2010. You can attend without the need to travel.  For details and registration visit this site.
10.    The next one-day advanced public Flex workshop on modularization of Flex applications will take place in Lansdowne Resort, VA on July 27, a day before the CFUnited conference starts in the same venue ( this workshop is not affiliated with CFUnited). Here’s the registration page.

11. In August-September I’ll be running a week of online live Intro to Java class – stay tuned.

That’s all folks. See you in one of the meeting rooms.

Yakov Fain

Getting Overloaded With Training Requests

For some (good) reason we are getting bombarded with Flex training requests of various kinds. Not sure if this is a side effect of our recently released book Enterprise Development with Flex (it stays in the Amazon’s bestsellers list in several categories) or maybe it’s just something in the air…


Here’s my current calendar:


April 26-30: Teaching a week of Flex intro at Home Depot, Atlanta, GA
May 10-14, Teaching Adobe Certified Flex 4 (!) class at AT&T, New Jersey
May 15, Speaking at Flash and the City in New York on LCDS alternatives.
May 17, Teaching a one-day workshop on modularization of Flex applications (btw, if you enter discount code saynotowifi you’ll get $100 off the price)
May 20-21, Teaching a 2-day Advanced Flex seminar at AT&T in New Jersey
May 24-28, Teaching an intro Flex class at Home Depot in Atlanta, GA
June 7-8, Teaching a 2-day Advanced Flex seminar for a private client in
Casablanca, Morocco.
June 21-25, Teaching an Intro Flex class to a private client.

My colleague Victor is finishing consulting project and will be running two two-weeks training engagements for a private Middle-East client. This will be a a mix of formal classes and one-on-one mentoring sessions.

On our waiting list, we have two requests for a one-day Modularization workshop from and two-day Flex overview from private clients. They want me it in May…

Also, we’re planning to start running online live Flex and Java training classes, but that’s in July.

And let me tell you, I love being overloaded with training requests!

Yakov Fain

Flex User Groups and Conflict of Interest

First of all, to add a little more credibility to what I’m about to write, let me just say that I’m running Princeton Java Users Group (JUG) for years and have a pretty good idea of how organization of the meetings and sponsorship work in such gatherings.
Java community is huge, well established and has a loyal following of leaders and enthusiasts that are willing to spend some of their evenings meeting with their peers and attending presentations by either well known or by no so famous yet presenters.

As a leader of this JUG I often receive emails asking to promote among our members a commercial training event. I do it on one condition: our JUG members have to get some additional benefits from such a vendor, for example, discounted price, free speakers coming over to our JUG, free software licenses…something.

During the last several years, I spent a substantial portion of my time working with Adobe Flex and often fly with my colleagues around the world running either commercial training sessions on behalf of our company or just speaking at the user groups or technical conferences.
While promoting our events I started approaching the leaders of the local Flex/Flash user groups asking them to spread the word about our training session and/or offering to present at their user groups while I’m in town.

To my surprise, pretty often they either just ignore such offers or give a polite response with some lame excuse for not doing this.  Things started to clear up when at one city I was allowed to talk, but was asked not to promote our Flex training because the company that provided the room and pizza was running their own training classes in Flex and were afraid of competition. No problem. Sounds fair.

One of the Flex user group leaders never responds to such offers. Ever. And I tried it multiple times.

In one city, I didn’t get any response to my first email, sent another one and the leaders of that group got back to me – thank you for the offer to speak at our UG, but we are not running any sessions during summer. Fine. You didn’t want me to deliver a technical presentation for free, but why not spreading the word about our technical training and offer a discount to their membership? When we were running the training class in that city, one of the attendees explained me the reason – the local Flex UG is being run by a consulting company that offers Flex services and doesn’t want to allow any competition in the Flex space.

The recent response from yet another UG was very upbeat: thanks for this great offer, we’ll post the information about your event on our Web site. Needless to say that it never happened…

The Web sites of some of the Flex/Flash users groups don’t even provide contact information and the comments to their posts are closed.

It seems to be a trend. This leaves a bitter taste in my mouth given the fact that I often get emails from Flex developers from around the country asking if our company is planning to run a training event in their town. Our events are pure technical, we are happy to share with you pretty advanced tricks and techniques learned while developing our open source projects of during work on real-world projects. We don’t sell anything during these events, and typically, the tuition just barely covers our expenses. Guys, we don’t mind flying to your city, but please talk to your Flex/Flash UG leaders to open their doors.

We’ll keep running our advanced Flex training events anyway. Let’s see if the local Flex User Groups will cooperate in spreading the word about our upcoming training sessions in London (enter the code FLUG at the registration page to get £150 off the tuition) and Atlanta.

Yakov Fain

Know Your Flex Proxy

Flex framework includes a pretty useful object that deserves more attention: mx.util.ObjectProxy. You can wrap your object (i.e. Person)  into this proxy which will obediently report on all changes that are happening to this instance of a person.

If you subclass ObjectProxy, you can even add a new  behavior to the wrapped object without touching a single line of its code.

I’ve recorded a short video showing a couple of examples of using proxies in Flex.

This is one of many tricks and techniques that consultants from Farata Systems use while working on enterprise Flex projects, and we’ll continue to share them with you in the form of such mini demos as well as in one of our public seminars like the one on September 24-25 in London, UK (use ebd discount code to get the early bird price) or on October 30 in Atlanta, GA.

For up-to-date schedule of advanced Flex seminars see the section Training  at http://www.faratasystems.com.

Yakov Fain

A Singleton that Flex Developers must know about

Don’t create new singletons – just use what you already have.

Each real-world software developer knows at least one design pattern – Singleton. Flex has some specifics in implementing Singletons due to lack of private constructors in ActionScript, but the goal of this little writeup is not to show you how to implement Singleton, but rather to discourage you from doing this because each Flex application already has a singleton – just use it.

I’ve recorded an eight-minute video that will shows how you can use the Application object as your one and only singleton when needed. See if you can answer the question that I asked at the end of the video.

This is one of many tricks and techniques that consultants from Farata Systems use while working on enterprise Flex projects, and we’ll continue to share them with you in the form of such mini demos as well as in one of our public seminars like the one on August 7 in New York City or on September 24-25 in London, UK.

Yakov Fain

Do you have an SLA for your Flex RIA?

A perspective client showed me a Web page from Adobe’s Connect Now. Check this page out before reading further: https://connectnow.acrobat.com/

“Yakov, I want our new application to be like that one. The page comes up really fast and it’s very responsive. Can you create our Flex application for us that will be really, really fast? “

“Yes, I can but it requires planning, and applying special modularization techniques”.

Later on, this client’s Web designer shows a well-done design that has a dashboard as a starting page of that RIA. Several nice-looking charts, some aggregated data from database, some data grids. Looks good.

When I asked her to design another yet light-weight view to serve as a home page of that RIA, she resisted – “I want to have very clean design that shouldn’t have anything that is not relevant for the application.”

“No problem, but in this case your application will come up a lot slower than that Connect Now page. That page, if you remember has almost nothing there”.

“But you said you can do it as fast as Acrobat Connect, aren’t you?”
“Yes, I did, but Acrobat Connect’s main page does not have charts, it doesn’t process thousands of database records, isn’t it?”

But guys at Adobe designed that page in a smart way to make the users happy. It not that important if they’ll have to wait (later) for a couple of seconds when the actual work will have to be done…But it’s L-A-T-E-R. That page is perceived to be fast.

Using a dashboard as a starting view of your application means sending over the wire at least one extra 500Kb+ file: datavisualization.swc . If you are using third party graphic libraries, this belly fat can turn into something closer to one meg or even more.

“But I’ve heard that Flex framework can be cached on the user’s computer”
“True, but this is correct for the users who have already worked with yours or someone else’s Flex application that was deployed with datavisualization library as signed RSL (a SWZ file). But there are always users with virgin computers that won’t have that datavisualization library installed. Remember, you only get one chance to make a first expression!”

That’s why, we recommend designing any Flex application as a portal with a very light main page, that gradually, in the background brings other RSLs while the user enjoys working with the main view.

The other very important thing that some IT developers managers must not forget – it’s the SLA. Yes, it the same old service level agreement. And it must be in writing. For example, “The first view of the RIA should be displayed in under 20 second for a user sitting at the 1Mbps Internet connection.” Now we are talking. If you have it in writing and signed off by the users, no one will blame you for delivering a RIA that “feels kinda slow”.

“Thank you, Yakov. Does your company offer some mentoring or an advanced Flex training classes where our developers can learn all these tricks?”

“Yes, we do. I will be talking about performance and other most important usability features of Flex next week at our two-day Advanced Flex training in Toronto that’ll take place next week. During such events we share lots of tricks and techniques for delivering large but responsive enterprise application. “

I know, this is an outrageous into-the-face infomercial, and hopefully the $100 discount code vzw100 will put a smile back on your face when you’ll enter it at the registration page over here: http://www.eventbrite.com/event/353452185

Can’t make it to Toronto? How about a one day symposium New York City on August 7 http://www.eventbrite.com/event/355645746:

Don’t feel like flying to this great but a little crazy city either?

No problem. We can fly to your city and help you with your Flex project on site.

The choice is yours.

Yakov Fain

Free tickets to AjaxWork in New York City and More


1. As a speaker of AJAXWorld conference (NYC June 22-23), I can invite
anyone as a guest for free (the guest won’t get free lunch or access
to iPhone conf though).

Enter discount code ajaxspeakerexpo at http://tinyurl.com/qtu4b8

My presentation is about occasionally connected applications with Adobe
AIR, Java and BlazeDS: http://ajaxworld.com/event/session/469

2. Preliminary topics for our Second Annual Enterprise Flex Symposium are published at http://www.eventbrite.com/event/355645746.


Three Advanced Flex events minus three rejections

Yesterday, my colleague and I received notifications from Adobe MAX organizers that started with words “We regret to inform you…we were forced to make difficult decisions, which topics would be of most interest to our attendees”.

The following three out of five submitted proposals were rejected:
1.    Flex Design Patterns that Make Sense
2.    Occasionally-Connected applications with AIR and  BlazeDS
3.    Partitioning Flex Enterprise Applications

At this time, we haven’t received the responses for two more submissions:

1. Starting new Enterprise Flex Project
2. Improving Performance in Flex applications

None of these presentations is about marketecture – just heavy duty technical stuff from people who are actually using Flex in the real-world projects.

Of course, MAX organizers had to make difficult decisions. Of course, they wanted to ensure that engineers from Adobe could share with the Flex crowd the latest solutions and techniques.  I don’t have a quarrel with that. But don’t they think that people who paid thousands of dollars to attend this interesting event were entitled to hear some advanced stuff from practitioners? Apparently not. Expect to see 100-level talks like “How to use Flex Builder debugger” or “FlexUnit Crash Course”.

I want to make myself clear – I’m not complaining. Adobe can run their shows the way they want. It was my fault – I made the wrong assumptions expecting to see a selection process similar to JavaOne, where plenty of non-Sun employees get a chance to have a shot based on the technical merits of their presentation proposals.

No biggies. Now I know that it’s Adobe’s show, and I won’t bother with paper submissions in the future.
What’s left? It’s elementary, Watson! We’ll keep running our small-scale seminars and symposiums for those who want to learn from our experience and share theirs.

Having said that, here’s the three upcoming events that we’ve scheduled:
1.    Second Annual Enterprise Flex Symposium, August 7, New York City: http://www.eventbrite.com/event/355645746 . We haven’t published session descriptions yet, but expect to see most of the rejected by MAX presentations and more. If you’d like to present at this technical  no-fluff  event, please send me an email at yfain at faratasystems.com

2.     Advanced Flex 2-day workshop in Toronto, Canada is scheduled for July 23—24. Details at http://www.eventbrite.com/event/353452185

3.    Advanced Flex 2-day workshop in London, UK is scheduled for September 24—25: http://www.eventbrite.com/event/355598605.

Besides these events, I’ll make a presentation on occasionally connected AIR applications at AJAXWorld in New York City on June 23 http://ajaxworld.com/event/session/469 , and on design patterns that make sense at CFUnited in Virginia on August 14: http://cfunited.com/2009/schedule.

I also try to do my best to attend 360flex conferences made by developers and for developers http://www.360flex.com/ .

Yours truly,
Yakov Fain

Advanced Flex workshop is coming to Toronto and London

This advanced Flex workshop has been very well received in New York City and Boston. The next destinations are Toronto (July) and London (September).  These are some of the topics covered during these two days of immersion into the Flex and AIR world:

– Data binding and MVC under the hood
– Custom component life cycle
– Selected Design Patterns in Flex
– What are the options in linking Flex libraries to minimize the size of your application?
– Minimizing the  download time of your Flex application (perceived and real)
-Pros and Cons of various methods of accessing the server tier

– Comparing LiveCycle Data Services and BlazeDS
– Basics of  creating custom communication protocol adapters for BlazeDS/LCDS
– Making Flex messaging shine
– Server side push to Flex Clients in BlazeDS
– Data Synchronization with LCDS and BlazeDS
– How to staff Flex projects
– Comparing MVC Architectural Flex Frameworks( Cairngorm, Mate, PureMVC)
– Overview of Clear Toolkit (Log4Fx, Fx2Ant, Clear Data Builder, DTO2Fx)
-Application builds and continuous integration
-Reverse RPC – a Java application server calls the Flex client
– Peer-to-peer remoting (a client calls a function on another client)
-Modularization of Flex applications with modules and sub-applications
– Flex Portals
– Occasionally Connected Applications with Adobe AIR BlazeDS
-Testing tools Flex applications
-Dealing with memory leaks in Flex applications
-Challenges of printing from Flash Player
-PDF generation on the client
-Open table discussion: real-world challenges and success stories of the workshop participants


What’s the size of the class?
Under 20 people

Is this a hands-on class?
No. It’s not possible to cover all these topics during two days in a hands-on set up. It’s a mix of lectures, live demos and code reviews

Do you provide any materials for the attendees?
Yes, Each attendee receives the hard and soft copy of all slides. We also provide the source code of all examples used during this workshop

Is it even possible to cover all this material in two days?
You won’t become an expert in these topics, but at least will get a good grasp of important concepts that will save you tons of time and efforts while working on your project. Based on the feedback from people who attended these seminars in the past, each person finds some solutions he’s been looking for to apply in his project.

What are the prerequisites for attending this seminar?
Having a hands-on experience with Flex  is a must. Basic understanding of Java also helps.

Do you teach this seminar privately on-site?
Yes, we teach this seminar world-wide. Please send an email to yfain at faratasystems.com if you’d like to make arrangements.

Is there any other any other workshop that  has similar curriculum?

Yakov Fain