I gave a presentation at MN.swf Camp on Peer-to-Peer communication in Flash Player 10. That presentation is now up on my presentations page. The Library that I created to simplfy the P2P commcunication is also posted on my labs page.
I also created two sample applications. The first is a Video Chat application that runs in the browser and the second is an Collaborative Shopping application that runs in AIR. The shopping application was created by Jason Grey, I just added the collaborative functionality.
To anyone that has heard me talk about Silverlight vs Flash you know I think the true issue is with the plugin adoption rates. Here is the first attempt I’ve seen that compares Flash Player and Silverlight plugin adoption. I find it interesting that Microsoft doesn’t publish its plugin adoption like Adobe does. But I guess if my plugin was at 16% and the competition was over 95%, then I might not publish it either.
Yes, we’re going to do it again! MN.swf Camp was such a huge success in 2008 that we’ve decided to make it an annual event. It will be held at the Library again this year on Monday, April 6, 2009.
We’re currently looking for people interested in speaking. If this is you, please go to the MN.swf Camp web site and fill out our speaker form. You don’t need to submit your session topics yet. We’ll be holding an orientation meeting for all interested speakers. After that meeting you will have a couple weeks to submit your final topic ideas and selections will be made.
Probably one of the biggest things to happen to Flash….maybe ever. Last year at MAX Adobe gave us a sneak peak at a research project that took C++ code and compiled it into ActionScript. The demo they showed at the sneak peak at MAX 2007 of Quake running inside Flash Player. This got a lot of buzz. Well now they have released the toolkit (Alchemy) to the community. So you can go and start converting your favorite C/C++ libraries to ActionScript.
I’d personally like to see some XSLT and XML Schema libraries ported. And I’m sure there will be a lot of ports of physics and 3D libraries too.
You probably didn’t notice that Flash Player 10 (and AIR 1.5) shipped with a new protocol for p2p (peer-to-peer) communication. The RTMFP (Real-Time Media Flow Protocol) is a new protocol that supports direct connections between two endpoints.
What is the benefit of p2p communication? This will lower the barrier to entry for people to create real-time applications in Flash Player and AIR. No more bandwidth and server management expenses. The RTMFP protocol will also be a higher quality connection since it is over UDP and not TCP like the RTMP (Real-Time Messaging Protocol) used by Flash Media Server. RTMFP will re-establish a connection if there is a brief outage and maintain a session even if the client’s IP address changes.
This new protocol could be used for a number of applications like: text chat, VoIP conversations, video chat or multi-player games/applications.
Adobe announced Stratus the week. The is a hosted rendezvous service that allows two endpoints to establish a p2p connection. Once the connection is established the service is no longer used to send the data between endpoints. Stratus is currently in beta, but is not yet available for developers to start playing with it.
You can see a few of the RTFMP details in the ActionScript 3 Language Reference (see NetConnection).
I’ll also be announcing the AIR Distribution Kit open-source project. This is a ActionScript 3 library for creating update functionality within AIR applications and for creating custom browser-based install applications (otherwise known as install badges). You can see more information about this project on my labs page. I just started this project, so there might be some bugs. Check it out and let me know what you think. Please let me know if you see anything you wish working differently or what features you’d like to see added in the future. If you’re interested in assisting with the development, please contact me.
Have you ever wanted to actually compile XML data into your SWF before? I wanted to do this to embed the build version into my Flex appliction. The version was stored in an XML file and updated during the build process. But I wanted the version to actually exist inside the SWF in order to decouple the depandancy on the external XML file at runtime. This way I don’t need to worry about the XML file not loading or getting seperated from the SWF. The version will always be there. Here is a simple example doing this in Flex.