RIA

Architecture of RIA from JAOO

At the JAOO conference in Aarhus, Denmark I was able to co-present with Josh Holmes from Microsoft about the Architecture of RIA. This presentation was technology agnostic so we didn’t talk about specific implementations using platforms like Flex / Flash or Silverlight. Josh has posted the presentation slides and detailed notes on his blog:

Architecture of RIA

Check it out and let us know what you think.

Upcoming Events: CodeMash, RIA Jam, Flex-TurboGears Jam

It’s hard to believe that 2007 is almost over. It’s been an amazing year! Thanks for reading and contributing. I’m looking forward to another great year in 2008. And it all begins when I hit the road the second week of January for CodeMash 2008. I went to CodeMash last year and really enjoyed the conference, especially the water slides. :) I’ll be speaking again at CodeMash 2008 about Adobe AIR and Flex.

What is a Rich Internet Application?

The more software experiences become like the natural world the more users are pleased with those experiences. One of the most powerful, understandable, and universal concepts in computing is the idea of a desktop containing files and folders. Users embraced this metaphor in their software because it modeled their natural world experience.

There is a paradigm shift underway. In this shift, developers are creating user interfaces which more closely model the natural world. Since 2002, the term used to describe these types of software applications is “Rich Internet Applications”, or RIAs. Technologies like Ajax, Flex, Silverlight, Adobe AIR, and JavaFX are growing in popularity as this shift to RIAs gains momentum.

Census RIA Benchmark Updated with GZip and Laszlo

I’ve just posted the newest version of the Census RIA Benchmark application which compares data loading via various methods in Ajax, Flex, and now Laszlo. When I first began talking about the results of these benchmarks and heavily advocating AMF for large data sets some people suggested that my results were flawed because I wasn’t using gzip compression on the text streams. I have always wondered how many people actually use gzip but these critics seemed to indicate that everyone was using it. Based on some past experiments I postulated that AMF would still be significantly faster than using gzip. There is a trade off when you use gzip. The amount of data that has to cross the wire is significantly smaller but there is increased latency on the server to do the gzip and on the client to ungzip. Sometimes this trade off is worth it. Unless you are using AMF. AMF uses a very basic form of compression that is extremely fast, faster even than just creating XML or JSON strings. And of course much faster than creating big strings and then compressing/decompressing them. Now there is definitive proof of this. AMF is still by far the fastest method for loading large data sets in RIAs. Not only is it faster for loading the data, Tamarin makes client-side operations like sorts and filters extremely fast. All of this is evident if you spend some time with the Census application. Check it out and let me know what you think.

Flex/AIR Jam & RIA Summit – Last Day for Early Bird Discount

Today is the last day you will be able to get the early bird discount on the Flex/AIR Jam and RIA Summit conferences in Crested Butte. Also, attendees of the Flex/AIR Jam will get a free copy of Flex Builder! The Jam will be a fantastic way to learn how to use or extend your knowledge of Flex and AIR. Bring your laptop and spend two days of hands-on, coached coding. The RIA Summit will be a three day Open Space style event focused on discussion about Rich Internet Applications. I’ve been to events run by Bruce Eckel in Crested Butte before. They are the best events I’ve been to and highly recommend them. Go sign up today to get the early bird discount. I hope to see you there!

HowTo: Reduce the size of your Flex app

Flex 2 added a neat little feature which allows you to load Runtime Shared Libraries, from other domains. And since the browser caches these libraries in theory we could all point to a central set of Flex 2 Framework RSLs and users of your application would only have to download the RSLs the first time they went to an application which used them. Before I show you how to make this work, lets talk about the caveats… First and most important, THIS IS UNSUPPORTED BY ADOBE. While the Flex team is working on a better, more permanent solution to this problem, this is really a hack and despite the fact that I am using this in my applications, neither I or Adobe warranty or support the use of this in any way. Second, since there is no failover mechanism, until we find a better home for the RSLs, if you choose to point to my hosted RSLs, your application will be at the mercy of my web server. Third, if someone hacks my web server and uploads new cracked malware RSLs, or uses a man-in-the-middle attack to replace the RSLs in flight, then you (and I) have been p0wned. Fourth, I, James Ward, may have included modified Flex framework files which do bad things, like track user behavior/input and report them back to my server. While I promise I have not done this, if you choose to use these RSLs, you are putting your trust in my promise.

So despite the caveats, I still think this hack is sufficient enough for many applications. Flex engineering is really working hard to make this work for everyone. In the mean time what is outlined here may likely help you to dramatically reduce SWF size. Read on to find out how.