|Programming Flash Communication Server|
|Home | News | Sample Chapters | Source Code | Technotes & Articles | Errata|
This is an abbreviated compilation of my FITC notes and a summary of some of what I took away from the event.
FITC is a Design and Technology Festival held every year in Toronto. This year the festival listed 89 speakers and a similar number of keynotes, performances, technical and business presentations, and technical workshops. Some random titles:
The festival is impossible for just one person to cover. I had to make some hard choices about what to see and do. Fortunately, people were happy to talk about the sessions they attended so I had some sense of what I missed. Here are some of my notes:
I went to a few presentations that were either explicitly about user interface components or got me thinking about them – and the problems with using them:
Darron Schall's presentation was pleasant and to the point. He had good slides and provided a nice description of how he attacked the problem of extending Macromedia's UI components. His slides are available on his web log. His code is password protected but eventually he will release it to the public. If you attended his talk you have the password and get instant access.
Darron did a good job of describing why and when he chose to use inheritance, composition, or even occasionally messed with a component's prototype. He showed good examples of implementing drag-and-drop of List items from one List to another (DraggableList) and of adding formatted data entry restrictions on a TextInput (FormattedTextInput). His code was easy to read and made sense right away. The only problem with his talk was that he shouldn't have had to do so much work! It reinforced for me how thin the v2 component set is. I think it's just crazy that a developer has to do what Darron has done to get those features. Macromedia is in its second set of components in Flash. Flash MX was released with the first set in March 2002. Assuming they were working on those components in 2001, it’s a safe bet that Macromedia has been working on components for roughly four years. Richer component sets have been around for a very very long time. I just don't understand why the components in Flash Professional 7.2 are so limited. At least the Flash platform is important enough that people like Darron are willing to fill in some gaps and help the rest of us.
Daniel Dura's presentation on Flex didn't go into the level of technical detail I like to see. But that's not his fault. We asked him a lot of questions – many of which involved speculating about future releases – and that robbed him of a good chunk of his presentation time. He did a good job of saying what he could without giving anything about upcoming releases away. So, without a lot of code to read, the thing I enjoyed most was his infectious enthusiasm for his work. I don't remember what parts of Flex he worked on but I gather a lot of work went into streamlining and improving the UI components in order to make Flex work. If you haven't seen Flex, have a look at this short article: http://www.moviecritic.com/devnet/flex/articles/containers_print.html.
Flex includes something really important that every UI component set has to have to be taken seriously – layout managers and containers. For example Flex includes the TabNavigator container. (Quick, name a UI component set on the market that doesn't have tabs? No, I mean other than in Flash Professional.) Flex includes an HBox container that lays out subcomponents in a row and a VBox container that lays them out in a column. There are others. None of these are in Flash 7.2 but you can have them if you buy the Flex server. I enjoyed watching Daniel describe some of the differences between hand coding a Flash app for Central and building one in Flex. The workflow in Flex is so obviously superior. But again the same question keeps coming to mind: in the year 2005, why can't I do the same thing in Flash Professional? And, no disrespect to Macromedia's engineers, but why do I have to buy a .war file to install in my J2EE server to do it? Again, as a customer of Macromedia's development products, I just don't get it.
I walked out of the presentation shaking my head. Maybe Macromedia will further enhance the components they built for Flex and we'll finally see a fully featured and less buggy set of UI components in Flash 8. Or maybe we won't. Based on nothing more than a lot of hallway conversations, I don't think many people outside Macromedia really know yet.
One of the benefits of being at the festival is that I had time away from the office to just think about the Flash platform and how much I really want to invest in it at work. Every time I listened or talked to a Macromedia engineer/developer I was impressed. Every time I think about Macromedia's product positioning and repositioning I'm not so sure. But then maybe the Flash platform's market for developer tools is getting larger.
Robin Debreuil and Kevin Lindsey presented Xamlon Pro for Flash as an alternative way to produce SWFs. From my perspective they spent too much time positioning their product and describing its advantages. It would have helped me understand what they were up to if they had dived in to working with their software earlier in order to demonstrate building more examples in detail. You can get an overview of the product here: http://xamlon.com/software/xamlonpro/flash/. The basic idea is you create XAML markup and develop using a .Net language in Microsoft's Visual Studio. There wasn't much time to ask questions, and I couldn't stay too long, but they said their components were not complete yet. I never found out if it's possible to layout components in Visual Studio or if it must be done in XAML. I'll check back in with Robin et al later to see how they are doing. If they can provide a complete component set including the usual containers and layouts that I can build visually then remind me why I need Flex and its .war file again? As a side note, I work in a Java/Oracle shop and find it ironic that - if we adopt Xamlon instead of Flex (or Flash) it will introduce Microsoft's development tools into our shop for the first time - to generate SWFs.
At one point Robin made a point about the Flash IDE and how most people (including Macromedia's own developers) use a third party text editor. Then he compared Microsoft's .Net development environment to Flash's ActionScript editor. It was a slam dunk. It made me think back to my reaction to an old blog entry from Mike Chambers. I remember my surprise when I realized Mike wasn't using the Flash IDE. And then I remembered another Macromedia employee cutting off my complaints about the IDE with "no one uses that!"
Note to Macromedia: Stop letting all your developers and marketing people use third party editors! Make them use Flash Pro. I have nothing against Macromedia's developers or the third party tools they use. I just think the torture of using Flash as a developer's IDE will result in dramatic improvements. Consider the history of Eclipse. Its developers used it to enhance Eclipse so they built-in what they needed as developers. Make your developers use Flash Pro while developing Flex components, Captivate, Flash Paper, Breeze Live, etc and you'll sell a better IDE every year.
Getting back to Xamlon, you can also bring Illustrator graphics into your work. Depending on how far Xamlon can leverage Microsoft's visual development tools, it might hurt Flex and maybe even Flash. That would represent the first real competition within the SWF platform for Macromedia since Adobe gave up on SWF. I spoke to Aral Balkan a little about this and he mentioned he had just blogged something on a similar subject. His article is worth reading. I imagine he's right, that for now, Flex is the most productive way to build an RIA. I hope that only lasts until Flash 8 is released. If not, maybe by then it will be time to invest in Xamlon or NeoSwiff.
I wonder what this means for Macromedia's long term cash flow and their long term reinvestment in the Flash platform. The Flash platform and Macromedia's revenue will not live or die only on the strength of Macromedia's developer tools and components alone. But components and the tools to wire them up into an application are incredibly important. Without access to full-featured cost effective components, Flash has little value as the presentation layer of Web applications. If the SWF developer tools market really opens up (it's not there yet) then what?
I didn't go to Kevin Towes presentation, Six Advanced Flash Video Techniques, but someone I work with did. He came out impressed. It was standing room only in there and that was at a premium. Flash video is a big deal. The Flash 8 player will include the new VP7 codec from On2. During the keynote we saw a very impressive sample video. Add in alpha channels and it's a clear win for video on the Flash platform. Judging by the wow factor, I gather Kevin showed a number of cool techniques. He also mentioned a new product coming from Buraks. Before describing what Buraks is up to, I have to admit a real fondness for his ASV decompiler. It has saved me more hours than I care to count by recovering code after two separate disk crashes. I feel like I owe the guy. His new product – to be released soon - is called Captionate. Captionate lets you inject text captions into an FLV file. It is the first post-production tool that I know of that allows you to insert ActionScript data into an FLV file. To start with the initial release will do a good job of helping you add captions. You can add captions for different speakers and have different caption tracks. If accessibility is important to you – and it should be – Captionate is an important tool that is about to make Flash video more accessible. In the first release you can only inject text into an FLV but even then it should be possible to use text to do more than display captions. In future releases you may be able to inject any ActionScript data including numbers and objects.
Note: data is embedded in an FLV as a remote method call with parameters. If the FLV is being played from a Flash Communication server all the remote methods and their parameters can be retrieved at once and executed immediately or they can be executed in sync with the audio/video.
Burak's ASV is a good example of a third-party tool created because of the Flash platform. Captionate is further evidence of an emerging marketplace for tools for the Flash platform.
Even though I have been in Breeze Live meetings, FlashCom rooms, and other virtual places with Giacomo Guilizzoni (a.k.a. Peldi) I never had the pleasure of actually meeting him in person until this year's festival. I enjoyed his presentation on Integrating Flash Paper & Captivate content in your RIA. I left the presentation thinking just how good the FlashCom API is – especially remote shared objects. Take a Flash Paper SWF, look at the Flash paper API that manipulates the Flash paper document, add a remote shared object, and suddenly you can take control of someone else's Flash paper document, scroll and zoom in to show them part of it, and select some text while you talk about it in real-time via FlashCom. The same goes for Captivate presentations. Peldi, took two Macromedia products that generate SWFs, described their ActionScript APIs, mixed in the Communication Server and demonstrated how combining all the pieces provides a more powerful real-time communications platform. The simplicity of the code he used to do it was impressive.
Aside from enjoying the technical part of his presentation, I enjoyed Peldi's sense of humor. During his presentation someone's cell phone started playing music. Without missing a beat Peldi started dancing behind the podium to the music, quoted some singer: "you WILL feel the music" and continued on with his presentation.
Peldi is also a contributor to Programming Flash Communication Server so I have to admit a real fondness for him and the other contributors to the book. I could never have written it by myself. So, no unbiased reporting here.
I was also interested to hear what people outside Macromedia had to say about how the Flash Communication Server is being used. Chafic Kazoun talked about using FlashCom in his presentation Mission-Critical Flash Using a State-Based Application Architecture. He did a great job describing how the team at B-Line Express built a real-time medical examination and testing control centre using Flash, Flash Remoting, a Database, and FlashCom. I'm not sure what part was most interesting; his description of the state-based design he created or his mastery of B-Line's customer requirements. By the end of Chafik's talk I wasn't sure how attached he was to FlashCom given its cost as a socket server. (He isn't using it to stream video or audio.)
Throughout the festival it became clear FlashCom is seeing real takeup as a streaming server in places where its cost is not considered much of an impediment. I've suggested this before, but I hope Macromedia finds a way to adjust the Communication Server's licensing model to make it more cost effective to build data-only and smaller scale streaming applications. Otherwise socket servers, Skype, and other products will drag developers like Chafic away from FlashCom. FlashCom has tremendous advantages today and will acquire new ones in the next release. But over time other competing solutions will appear. I think Macromedia needs to encourage the growth of a solid FlashCom developer base over the long term.
I attended other presentations but don't have the time to really describe them here. I enjoyed Grant Skinner's retrospective of some of his work. This year he was funnier, and more entertaining than I've ever seen him. His slides were perfectly paced and he seemed to always choose just the right words to describe what he was doing. After his presentation I was walking by the sign in the picture on the right. If you saw Grant's talk you know he must listen to 590 radio. Robert Penner almost sold me on pair-programming and Colin Moock had me wondering if Web sites are really lonely places. I enjoyed every presentation and am somewhat astonished at how FTIC continues to get better every year. I remember the first year FITC was held in the Design Exchange. It was difficult to talk to people outside the main presentation hall so the speakers tended to retreat to the speakers preparation room. In the current location there is still a speakers preparation room but you can talk to just about anyone throughout the festival. There was a wonderfully relaxed and open atmosphere. I had many enjoyable conversations in the hallways outside the presentation rooms - never mind the conversations at lunch, the dinners, and all the evening events. I enjoyed people I had never met coming up to me to chat about Flash, the industry, FlashCom, or whatever. It was obvious that the presentations provided a lot of inspiration and food for thought that people were trying to make sense of. Also, my impression from all those conversations is that people are busy. A common complaint I heard was how everyone needed to hire people quickly or would have to start turning down work – another welcome change from four years ago. While accepting his award, Mark Miller who received the best Canadian student award, joked about when he would be available for hire. I assume he will not have any problems.
A few days after the festival closed I asked some people what they thought of it. I got uniformly animated and positive responses. There has been a lot of blogging about how good the festival was since it ended – further evidence that it was worth the journey. And the effects of the festival continue in other ways. I'm working on some new things and corresponding with new people.
Then there was last night. My wife and I went to see Moolaadé, Ousmane Sembène's latest film. After we sat down someone a few seats away leaned over and asked "Brian Lesser?" He had been at FITC and recognized me from the festival. It turned out he was also a graduate of Ryerson. So we got to swap notes about the festival and the professors both of us had 20 years ago. I've got his card and hope to find time to continue our conversation. I think the after effects of FITC will last a long time - the mark of a significant event.
Post or read comments for this page.