« Brightcove Ends Free Network Service | Main | Day 2 at MAX »

Day 1 at MAX

Here are my notes from my first day at MAX. It includes info on the keynote, using C/C++ libraries in Flash, Python in Flash, Thermo (aka Catalyst), RTMFP, and peer-to-peer communications.


The keynote presentation had a major focus on "The Flash Platform", which includes the Flash Player, Flex, etc. It's was the main thing talked about by Shantanu Narayen. Nearly everything that CTO Kevin Lynch talked about were in Flex, Flash player, AIR. He also talked about "Mobile first", thinking of mobile design before thinking of desktop view.

There was an amusing mention of MLB.com and a NY Times AIR app. Both of these are conversions from Silverlight, two of the largest reference applications that I've heard about for Silverlight.

My favorite part of the presentation was the Salesforce VP talking about "platform as a service". A quote that got a big reaction: "For 20 years, enterprise software has been where innovation has gone to die." The speaker thinks that Salesforce is changing this with cloud computing, Flex frontends, and their development platform. They have a massive development platform- 87,000 custom applications on force.com, tons of apps on appexchange.com

Lazy Innovation: Strategy for the Design of Innovation User Experiences

This was a presentation by Adobe Consulting. I didn't take any notes from this presentation. I heard that at a different presentation at this time Ely Greensfield was going to mention me for my porting of compiler SDK work. But I was cut out of the talk, in the interest of time. My 15 minutes of fame has been thwarted.

Using C/C++ Libraries in Flash Player and Adobe AIR

There was so many people just grinning with excitement at this talk, before and afterwards. This is research project at Adobe, now known as Alchemy and released on labs.

It's based on LLVM, has partial POSIX emulation later, full port of the BSD standard C library (which is about 140 KB), and partial autoconf support. There's a C/AS3 bridge API athat llows access from one language to the other. There's also experimental support for debugging the C code from Eclipse while the code is running in the Flash player.

Surprisingly enough, and I'd like to learn a lot more about this, is that they see it run up to 25x faster than hand-written AS3. This is due to the AS3 API added and code optimization from LLVM.

They showed examples of using C++ libraries, using libpng library to encode a PNG, tracking an item through a web cam, and a voice synthesizer.

They have converted Perl, Python and Ruby interpreters, and they do run. So you can have these languages hosted within a Flash player. There's some work that still needs to be done to make this easier to use, but Python can now be interpreted at runtime within the Flash player? Wow.

Introduction to Thermo (aka Catalyst)

Thermo, now knows as Catalyst, was the hot topic of the day. This was a sold-out session, and they added a second session which sold out as well. Two quotes which sum things up to me: "Let designers design the entire interface, not just component skins." "Allow designers and developers to work in parallel."

An important note from the middle of the presentation: at least a year away from releasing the product.

Flex is spreading out from just being code-centric tool. Extending out to designers through Flash Catalyst, Flash Pro CS4 support, and FXG.

Create graphics in MXML (in FXG) format using Photoshop, Illustrator, and Fireworks. Support for this is available today. Skins can be visually designed through FXG. Merge tool for conflict resolution within Flex Builder for dealing with Catalyst changes. Obviously trying hard to deal with round-trip development, which is essential.

They also went over Flex Builder improvements for Gumbo, a huge list of interesting things: network monitor, improved compiler speed, reduced memory consumption, move refactoring, ASDoc tooltips in code hints, file templates for new classes, event handler generation, debugger expression evaluator. FlexUnit support, and more.

Future of Communication with RTMFP

RTMFP is Secure Real-Time Media Flow Protocol. It's a new alternative RTMP in the player.

RTMFP is based on UDP, which allows it to do a number of things that RTMP can't, since it's based on TCP/IP. It has a sophisticated protocol based on top of UDP: multiple parallel media flows of messages, variable congestion response, allows for peer-to-peer applications, fast recovery from brief outages, and IP address mobility.

Developers just need to change the protocol in their URL to use RTMFP. It requires port 1935 and multiple high UDP ports. There's no tunneled counterpart as there is in RTMP.

Peer to peer connections are a new use in RTMFP, which allows media to bypass FMS and travel directly between Flash players. FMS still used to introduce the peers and server still available if firewall blocks or RTMFP connection can't be made. In order to use this feature, need to add one parameter in NetStream code to get and identify the publishing id.

Stratus, available on labs, makes RTMFP available for use today.

Future possibility in RTMFP includes "groups", self-organizing overlay networks of peers. This may work with a "Groupspect" instead of a publishing id.