One day Master Class on Flex Modularization comes to New York City

Last week, I’ve presented on Flex modules and libraries at 360flex in San Jose, CA. This talk brought lots of developers to the room. After this  80-minute presentation I’ve been answering questions for another 25 minutes.

Such an unexpected interest to this non-flashy and very technical topic is a good indication that lots of enterprise grade Flex applications are being developed in the real world.

Three days in a row the 360Flex attendees were stopping by just to say “Thank you” for explaining how to slice a Flex application into pieces.

Inspired with such a warm welcome, I’ve created a curriculum for a one day hands-on master class where this topic can be covered from the practitioner’s point of view and in greater details. I know for sure that most of the people who have developed at least one production grade Flex application had to go through the pain of modularizing the application when it was almost ready for production. The goal of this workshop is to help you in designing your application properly in the early stages of the project rather than deciding what to do with this 3MB monster a month before going in production.

This event is scheduled on May 17 in New York City. It’ll take place right after the conference Flash and the City, so consider staying in this great city for yet another day. You won’t regret it.

The ROI of attending this workshop can be pretty substantial. This is a small scale bring-your-own-laptop event and the number of seats is limited – consider registering early at the following Web page:

Yakov Fain

Two weeks, two flights, two conferences

The first two weeks of March I’ll be vacationing in training rooms – teaching and learning Flex.  I used the word vacationing because I love this part of my work the most.

March 1-2: Advanced Master Class on Flex in Brussels, Belgium. This public 2-day training becomes more and more popular. During the last 8 months we’ve taught this class in New York, Boston, Toronto, London, and Moscow. To the best of my knowledge, no one else offers such an advanced curriculum as public training.  On the night of March 2 I’ll be co-speaking at the Belgium Flex Users Group.

Here’s something you may not know. Viktor Yanukovich, the newly elected President of the Ukraine will visit Belgium on March 1. The real reason is not to  meet political leaders of Belgium and European Union, but to attend our class to become more flexible and invite Farata Systems to teach the same class in Ukraine in June of 2010. We’ll definitely consider this.

March 7-10: On arrival from Belgium, I’ll just have time to laundry my Farata t-shirts and have a couple of dinners with my family, and then board the next flight to San Jose, CA. Yep, it’s time for 360Flex conference, which as of today is my favorite Flex gathering. This is a No BS event. For independent developers by independent developers. 40 sessions, 2 panels, 4 Sunday Hands-On sessions. Networking. Beer. Good energy.  Solid technical content.I even recorded a 40-sec video to share with you my excitement!

I’ll deliver an interesting and useful for enterprise Flex developers talk titled “Boring presentation on Flex libraries and modules”.  The rest of the time I’ll spend in the meeting rooms listening to what other developers are up to.

In the evening, I’ll be glad to join you for a Johny Walker. Be there. Join several hundreds of Flex developers who are in the know!

Yours truly
Yakov Fain

Master Class on Adobe Flex in Brussels and more

After teaching our popular advanced Flex master class in New York, Boston, Toronto, London, and Moscow we are hitting the beer capital of the world: Brussels, Belgium. This class is scheduled for the first days of March, and we hope that Flex 4 will be officially released by this date. Our book Enterprise Development with Flex should hit the book stores by then too.

To take advantage of the early bird prices register early at

If you can’t make it to Brussells, I’ll be glad to meet with you at 360 Flex in San Jose, CA on March 7-10, where I’ll be presenting on one of the topic from this master class.

If you can’t make it to San Jose, I’ll be very happy to meet you at Flash and the City conference in May in New York City. Most likely I’ll show you a really cool way of embedding a Flex application into a PDF file to be played by Acrobat Reader.

If none of these dates/locations work for you, you can always invite us to teach this class privately on site in your organization almost anywhere on the planet Earth.

Yakov Fain

Thinking of Flex in London

After running with my colleague Victor an advanced Flex training in London,  we kept asking ourselves, “Why we liked it better than many of similar events from the past?” No, it’s not because London is a nice city to visit. It’s not because you hear dear and darling all the time. The reason is simple – this was the strongest (from the skill set perspective group we’ve ever had).  Go Europe, go! Besides people from UK, we’ve had attendees from Holland, Belgium, Norway and even one person (very strong) from South Africa. Does it mean that European Flex developers are better than American one?

As usual, there was one 90-minute section with a detailed comparison of Flex MVC frameworks.  As usual, I was softly criticizing the use of MVC framework in Flex.  Yes, I can admit that if you are dealing with low-skilled developers you may justify using Cairngorm. IMHO, Mate seems to be less intrusive to your project.  No, I didn’t have a chance to look closely into SWIZ – attending one presentation is not enough for forming an opinion.  PureMVC is over-engineered…

I try to go easy on frameworks in the classroom, because there could be lots of non-technical reasons for adopting this or that framework.   I also know that people who created frameworks are seasoned developers with their vision of how things should be done. No disrespect here. But if they have their vision and are not afraid to promote, I am entitled to have mine, don’t I, darling?
Since we are not in the classroom now, let me use a bit stronger language. If to make a call to a server and display a piece of data on the screen you are using Flex implementations of Façade, Command, Delegate, Proxy, Services, Mediator (which is divided into main and secondary ones), and all these objects have to be properly registered or else….you are nuts. The only excuse I can accept, if you are not a decision maker, and this “architecture” have been forced by another developer. In this case s/he is nuts.

If you are a consultant and suggest such complex but theoretically correct architecture to your customer, I understand (but not approve) your goals  – to keep yourself billable on this project for as long as possible.
If you have a minute, read an article by Joel Spolsky about duck tape programmers. Joel is talking about other than Flex technologies, but it resonates with what I keep promoting for the last 3+ years in Flex community – keep it simple, don’t over-architect your project, be agile, components vs. frameworks. I didn’t hear the term “duck tape programmer” before, but if this means implementing simple solution to deliver the project on time – I’m all for it.

But if being a duck tape programmer can be a good thing, during the last ten years I see a new breed of developers that I call “Google programmer”. No, I’m not talking about people who work for this company. I talk about people whose education consists of googling for code fragments on the as needed basis.  One attendee  stated that he was really surprised when we showed a wealth of information that can be revealed by using the Flex compiler’s option –keep. We’ve been using this option quite a lot to understand what’s under the hood, have you?

Why was -keep such a revelation to this senior developer? Is it because reading program documentation or books on software  is out of fashion in the 21st century?   Googling for the code samples can help when you know what are you looking for. But this –keep is a very good example of what would never be returned by Google unless you specifically ask “How to examine ActionScript code generated by Flex compiler?” Have you ever bothered asking such question?

Each of us, regardless of how senior we think we are, has islands (and gaps) of knowledge and reading books and attending formal training is like a SPA treatment for our minds. That’s why I’m very exited to spending several days in the training rooms at Adobe MAX conference, where I’ll be studying hard new tools and techniques of software development and architecture. Many great developers that will attend this event will definitely give me a new perspective to “obvious things”, and maybe  there is another secret key besides the –keep that will help me in some way  to be more productive and efficient at work.

This year I go there with Victor Rasputnis and Anatole Tartakovsky, and each of us is eager to learn from others and share what we know.

See you at MAX,
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:

“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:

Can’t make it to Toronto? How about a one day symposium New York City on August 7

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

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 if you’d like to make arrangements.

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

Yakov Fain