review: Creating Visual Experiences with Flex 3.0 by Juan Sanchez & Andy McIntosh

The short version: Juan & Andy rock, Addison Wesley SUCKS.

Sometime after MAX ‘08 I decided to get Juan Sanchez’s flex book, Creating Visual Experiences with Flex 3.0. Juan’s background is in User Experience Design (UXD), so it was refreshing to get a flex book with some UXD perspective for a change – so many of the flex community are ex-Java guys, and no offense guys (some of our best Flex developers came from the Java world), but the Java perspective can get a bit, ahem, dry after a while. As far as the content of the book goes, Appendix A, Skinning and Styling Diagrams, by itself is valuable enough to make this book a must-have reference on any flex developer’s bookshelf. Juan mentioned somewhere (his blog?) that a lot of folks were requesting posters to be made of these diagrams and that he was in fact planning to make these available. (What I want to know is, can I get mine framed?)

The level and approach of this book is the epitome of what a lot of us wish the Flex docs from Adobe would be closer to. Having this book about thirty projects ago would really have made our lives easier in quite a few places. Then again, when has there ever been a comprehensive resource for an alpha product? That’s where we found ourselves when we made the transition from developing RIA’s in Flash to developing them in Flex. According to the team handling the Adobe documentation for Flex, they have been short-handed, and understandably so as flex developers are still in incredible demand yet very short supply. At least, that’s what they told me in ‘07; I have to wonder what the status of the situation is after the massive layoffs by Adobe in between MAX events. Regardless, even after having to learn a lot of these things the hard way in Flex, there was still quite a lot of good information in this book even for advanced developers. Animation, easing, skinning – just a few of the topics that are covered in depth.

Juan and Andy also took care to include lots of colorful images in their book, which they make heavy reference and use of. Ahem. The book is printed in BLACK AND WHITE. Not a drop of color anwhere, except for some sickening purple tint on the front cover. Almost every chapter, I found myself grimacing as the authors write, for example, “…in this case, red projects a negative relation…”. Red? Where? It seemed like they had no clue from the publisher that their book was going to be published in B&W, and, after asking Juan about it over Twitter, that was indeed confirmed – they only found out at the last minute. Oh, sure, they offer a free TRIAL subscription to the book on Safari when you buy the hard copy, and supposedly in the e-version on Safari the images are in color. If I wanted to read it online, I wouldn’t have bought the hard copy! I’ve done the Safari trial run before when I got a year subscription for purchasing Komodo for my perl development needs. Honestly the model of paying continuous rent for my books, especially in this case where I’ve already paid for the book in full, just doesn’t jive with me.

At the end of the day, the content of the book makes it a worthwhile buy, despite my feelings of being ripped off by the publisher. But this kind of experience definitely gives good argument for self publishing. I bought the book because of who the authors were – I would have still bought it, at the same price or even more, had they self-published….
With all the media coverage on the downfall of the newspaper industry, and the publishing industry in general, I feel companies like Blurb are well positioned while companies like Addison Wesley are doomed to failure as long as their only concern seems to be maximizing their profit margin whilst ignoring the needs of their consumers.

update: According to sources at Adobe, they’ve been having issues with the MXNA feed aggregator not automatically updating feeds. This update is a test to see if updating the blog entry is enough to force an update to MXNA using the ping URL mechanism…
And, apparently using the ping URL works.

Adobe MAX ‘08 Sneak Peaks on Flickr

Adobe MAX '08 Sneak Peeks I just posted my photos of the Sneak Peeks session from San Francisco to Flickr from Lightroom 2 using Jeffrey Friedl’s plug-in again (how useful it is!). The sneak peeks (and other general sessions) opened with a video DJ performance by Mike Relm. While the news of the massive layoffs at Adobe after MAX Milan may seem on the surface as bad news, the fact is that the RIA market and the potential for the Flash platform is stronger than ever. I am sure that most of the folks leaving Adobe will have exciting ventures to move on to, while Adobe itself will be leaner, meaner, and more primed to deliver some of the most exciting technology to the world.

Unconference Schedules @ MAX

It would have been nice if we had more information about the unconferences ahead of time, so we could have planned what to attend around our sessions and labs. Nowhere that I know of were the schedules posted except at the unconferences themselves. They should have been online and updated online somewhere where the 5,000 plus MAX attendees could have easily checked them. Anyway here are the schedules (I photographed them yesterday)
unconference 360 Flex schedule
unconference SODA schedule

MAX Sneak Peeks

Check my twitter (@abunur) for up to minute updates on the Sneak Peeks. I will post the images here later.

The fate of Saffron (AS3 UML modeling tool)

We had been waiting with baited breath last year for Saffron to come out…even a beta…and lately I had been wondering what ever happened to it…all links to Saffron come up with at 404…

seems Microsoft got in the way. Ah, nothing like deep pockets…guess we have to stick with Enterprise Architect or build our own tool (hm?!?)

Ooops…strike that…maybe its a rumor

Here’s the developer’s Twitter feed

So…hope we see Saffron someday soon after all!

Mercedes Benz USA Flex 3 Site Launched

It’s an ecstatic day for us here at Anaara Media as mbusa.com went live this morning. It has been a tremendous effort for our team, the in-house team at Mercedes in New Jersey, and also Yakov Fain and Valerie Silaev over at Farata Systems in Russia. We had been working around the clock on this project since January. The presentation tier is Flex 3 using the Cairngorm framework, on the back end they have a robust CMS talking with Java, and in between it all is Adobe LiveCycle Data Services.

Mercedes Benz USA

It was great to finally see our efforts on this project go live, but things are only ramping up here as we begin work on an iPhone application for a major telecom and we are also wrapping up on a DOD e-Learning project done in Flash with four million end users…

In short, the RIA space is still in the supernova phase.

Breaking out of the ‘page-centric’ web

I was recently forwarded a link to a “New Fandangled” Flex Web E-commerce site. After spending a few minutes of precious project time going through the site, one thought kept going through my head… ‘why did they develop this in Flex?’ With the last few projects I’ve seen, it seems that thought comes up a lot. Sure the site had nice animation, allowed you to preview rich content like music clips and cover art and in general was ’slick’ – but does that really leverage the power of Flex 3?

The navigation was page-centric – breadcrumbs abound – and transitions between ‘pages’ (although pretty) were not intuitive. Having developed web applications for the better part of a decade, I think most developers and project managers are still shackled to the limitations of HTTP and HTML. With the advent of Flex 3/AS3 there is no longer a need to suffer from ‘page-centricism’ to consider that every state change is a page change, and that user events require server call-backs. There needs to be fresh thinking – from the inception stage, throughout storyboarding and on to design and architecture. Flex 3 represents new opportunities for Information Architecture.

We were involved in a project for a large telecom that really demonstrated the departure Flex 3 could take from a traditional web application. There were complex graphs, geographic locations and tons of data being represented to the user in a very intuitive way. If I would come up with a term for the design, it would be ‘Interest-Centric’ – the user actions, displays, transitions, etc. were all driven by the user’s area of interest. The power of the AS3 event model and the state handling in Flex allowed our team to free ourselves from worrying about navigation breadcrumbs or ‘page’ transitions. Moving from one section to another rearranged the entire display, so that other sections were still available, but the area of interest was font-and-center.

We can gauge the progress of the Flex development community as a function of how far Flex apps diverge from traditional web applications. “Pages? We don’t need no stinkin’ pages!”

New Version of Cairngorm

OK, so according to Adobe Consulting they are making some significant changes to Cairngorm. Steven said that Cairngorm worked very well for SOA (Service Oriented Architecture) but not as well for Data Oriented Architecture. All they would say at this point was that they are pulling the model behind the controller contoller behind the model, and since it kind of works like Hibernate they are going to call it Slumber. I think there is some humor mixed in there somewhere…

Adobe Max Day 1 | Adobe Consulting, Flex, WebOrb, embedded Fonts, Kung Fu and THERMO!!!

I spent over an hour tonight with Steven Webster and the entire Adobe Consulting team having a very candid discussion. I also spoke with the CEO of WebOrb who had emailed back and forth a bit with our team back when we were struggling with a .Net to Flex class issue.

I mentioned that we were having very long build times. First of all, they said to speak to Matt Chotin, who I also spent time with today but prior to speaking to Adobe Consulting team. Apparently Matt is heavily looking into compile time issues in Flex.

Secondly, AC mentioned that there is a known issue using embedded fonts, which I know we are using in our app. Apparently using embedded fonts increases build times quite a bit. They are looking into resolving this.

Tomorrow I will try to discuss with Matt to see what other ideas he might have.

Also, after several sessions with the flex team and talks by the flex team members, it has become apparent that Flex 3 is offering MAJOR performance improvements. Also, and invaluable feature in Flex 3 is the new profiler – which allows you to see exactly what classes are taking up CPU resources and to what extent, etc. Also a pet peeve I’ve had with Flex all along has been replaced by another awesome feature – code refactoring – now if you change a function name, it will refactor all your code for you – no more find/replace to do it manually. It’s all very, very cool…

And apparently tomorrow in the Keynote speech we will get to hear some details about a (so-far) hush-hush project many of the Flex team members are working on code-named Thermo.

Oh, and I finally got to find out what the heck the Yahoo ads were all talking about, with this weird motto ‘Show us your Kung Fu’. From Day zero I had been seeing this in print in their ads, but no idea what they meant. In the community pavillion today I stopped at the Yahoo booth and noticed some cool shirts with that same motto, ’show us your kung fu’. So I asked them, what do I have to do to get one of these shirts? They said, ’show us your kung fu!’. I still didn’t get it; I was confused. Did they want me to wow them with some amazing Flex code? ‘kung fu coding’? Some weird sort of analogy? Then I thought, hey, are these guys being literal?

‘Do you mean, like martial arts?’ Yeah, that’s what they meant. So I asked, what do you want me to show you? They said do a roundhouse to our head! I said,

‘How about a jump spin crescent kick?’ Their faces changed,

‘Oh man, you mean you can do real kung fu?’

I just started stretching, they started gawking and grabbed a camera. I didn’t realize they were going to film this. They even wanted to tape me stretching. I did it real fast – I should have stretched properly but this was all unexpected, it was almost like a street fight (i.e. the spontaneity of it), except if I hurt any of these guys I would probably get booted out of MAX. So I did a jump spin crescent, hook kick, axe kick…they ate it up. hahah…I was wearing the shirt of my client, Ajmal Pictures – free marketing for them. Apparently the video will be posted in a week or two on the Yahoo! Developer Connection. Man, I don’t do AJAX…I would never have checked the web site except for this.

Oh, and they said they would give me a second shirt if I would go to the google booth and do the same thing. I was confused again…I guess I didn’t get their humor…they wanted me to go kick the google guys in the head. Wow, didn’t realize the competitiveness was that brutal…but then again, I use google, I don’t Yahoo! :P

Refactor Yourself

In software application development, specifically in extreme programming, a fundamental design tenant is to constantly refactor your code. By refactoring, you take a second look at your code, you trim it down, make it more efficient – you optimize. You look for flaws and eradicate them, you look for ways to improve.

By the same token, human beings can benefit from refactoring themselves. Walking to the office from the metro? Cycling through the woods, or sitting in rush hour traffic? Make use of that time to immerse yourself in a bit of reflection. Look at yourself with a discerning eye. Now, look deeper. What are your flaws? Don’t find any? Then you’re not scrutinizing properly – we are all imperfect, by nature. What makes us uncannily dynamic, is the ability to improve upon ourselves. Pick just one or just a few of your rough edges, and make a real commitment to improve upon them. What do you have to lose? Some effort. What can you gain? You may not realize that until you’re looking back at who you used to be…

“By the sun and its brightness.
By the moon as it follows it (the sun).
By the night as it conceals it (the sun).
By the Heaven and Him Who built it.
By the earth and Him Who spread it.
By Nafs (Adam or a person or a soul), and HIm Who perfected him in proportion;
Then He showed him what is wrong for him and what is right for him.
Indeed he succeeds who purifies his ownself .
and indeed he fails who corrupts his ownself.”

-Quran 91:1-10