Adobe AIR 1.0 and Flex 3 Launched Today


AIR 1.0 and Flex 3.0. have launched.

AIR is finally 1.0 and live as well as Flex3, both launched today. That is quite a 1-2 punch.  These are both great technologies and AIR extends the reach to the desktop and lots of power with that being finally 1.0 and officially launched.  It has been hard to convince people to develop on it other than tech demos and prototypes, this should help.

Ajaxian has the run down: 

Adobe AIR

The AIR runtime and SDK has gone through an especially long beta cycle (since June 2007) to ensure that both security and compatibility with existing frameworks was achieved. Some key new and/or updated features include:

  • Enhanced Desktop Fucntionality: Drag and drop to the operating system, copy and paste between applications, launching of AIR applications from the desktop or the browser, and run in the background with notifications.
  • Data Access: Adobe AIR now provides both synchronous and asynchronous access to the local file system, as well as structured data within a local database. This database is implemented using the open source SQLite database.
  • JS Library Support: Most major Ajax frameworks can be used to build AIR applications. Supported frameworks include jQuery, Ext JS, Dojo, and Spry. Adobe AIR integrates JavaScript and ActionScript to allow cross-scripting between the two languages, and integrated rendering of Flash and HTML content.
  • Security: Applications built on Adobe AIR can only be installed through a trustworthy install process that verifies that the application is signed via industry standard certificates, providing users with information about the source and capabilities of the application.

Flex 3.0

Adobe’s Flash-based RIA development platform, Flex, continues to mature and has been picking up steam in both the corporate space as well as sites such as blist and Scrapblog who have embraced Flex whole-heartedly. Some of the new features in Flex 3.0 include:

  • Intelligent coding, interactive step-through debugging, and visual design of user interface layout
  • New capabilities for creating RIAs and building applications on Adobe AIR
  • Integrates with Adobe Creative Suite® 3 making it easy for designers and developers to work together more efficiently.
  • New testing tools, including memory and performance profilers and integrated support for automated functional testing, speed up development and lead to higher performing RIAs.

One of the most compelling parts of the Flex announcement is the fact that Adobe has released the Flex SDK under the open source Mozilla Public License.

AS3 Cryptography and Hashing Libraries for Encryption and Security (crypto)

AS3 libraries for crypto are pretty robust from the new RAW POWER in the AVM2 virtual machine that runs flash9/as3, cryptography, like compression, is very processor intensive and needs a fair amount of power to be worth the time (usually a balancing mechanism). I am working on a few security apps in AIR and Flash9 for a project and a product so this is the best of what I have found to share. I will be sure to post here when these projects are complete.

There are two that are pretty good as3 kits that have decent support for crypto and hashing, actually as3crypto is quite broad in their support or most common crypto algorithms, even hashing support up to SHA-256 and ciphers 3DES, AES, RC4.

This is not really a comparison just some kits that have tools you might need. as3crypto is definitely the way to go for more heavy ecryption with common ciphers, but if you are just hashing some text as3corelib might work for your project. as3corelib is a more broad toolkit that is made or sponsored by Adobe that has JSON, RSS, support and other tools. It is a great core lib, but not as deep in the encryption area. I am actually using both in the stuff I am working on, as3corelib for some other uses (JSON,RSS) and as3crypto for all encryption and hashing.

The two are:

  • as3crypto
    • Robust, broad encryption and security support
    • Open source
    • Demo
    • Browse source
    • Broad support of algorithms
        • TLS 1.0 support, exposed through TLSSocket and TLSEngine classes
        • X.509 Certificate support, including parsing, and validation
        • built-in list of common root Certificate Authorities
        • symmetric ciphers: AES, Blowfish, DES, 3DES, XTEA, RC4
        • confidentiality modes: CTR, CBC, CFB, CFB-8, OFB, ECB
        • public key crypto: RSA (encryption, decryption, signing, verifying and key generation)
        • padding: PKCS#1 (type 1 and 2), PKCS#5
        • BigInteger library
        • hashing function: SHA-256, SHA-224, SHA-1, MD5, MD2
        • HMAC support
        • prng: TLSPRF and stream-cypher-based PRNG.
        • minimal ASN-1/DER support for PEM key parsing and X-509 cert parsing
        • Crypto – Shortcut class to access many classes above.
        • Hex, Base64 – Static methods to convert binary data to and from text formats

As3 Crypto is a cryptography library written in Actionscript 3 that provides several common algorithms, as well as TLS 1.0 support. The library is offered under the BSD license, and include several derivative works from Java, C and javascript sources.

Here’s some numbers from as3Crypto home page that show the speed, note it has not been optimized just yet (since most of this is client side and only one user would be using it this is not an issue – server side is where this can have scale problems from parallel execution but flash is rarely server side if it is too slow, but it is quite fast)

The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md2                  1.01k        3.64k       15.08k       53.89k      171.76k
md5                221.85k      447.32k      739.54k      893.72k      905.82k
sha1                82.28k      184.78k      286.76k      336.03k      345.41k
sha224              60.84k      125.67k      200.27k      234.28k      247.58k
sha256              60.52k      126.30k      199.19k      234.04k      246.01k
hmac-md5            48.37k      159.37k      282.87k      295.15k      341.21k
hmac-sha1           18.29k       64.82k      165.72k      277.60k      342.52k
hmac-sha224          5.75k       24.84k      125.71k      204.35k      256.36k
hmac-sha256         15.10k       49.33k      123.71k      206.17k      249.08k
rc4                117.24k      381.34k      878.93k     1315.01k     1539.44k
xtea-cbc             2.49k        6.48k       12.80k       33.00k       44.48k
aes128-cbc           1.61k        4.01k       22.97k       78.55k      205.01k
aes192-cbc           1.34k        5.13k       20.91k       69.45k      172.43k
aes256-cbc           1.48k        5.63k       18.87k       63.45k      150.39k
blowfish-cbc         2.77k       10.81k       42.28k      140.27k      343.05k
des-cbc              2.53k        9.73k       35.20k      124.84k      624.88k
3des-cbc             2.50k        9.72k       35.61k      115.21k      253.42k

The library has not been optimized for speed, and those numbers could probably be improved.

They both have minimal or none ASN.1 support which I will need but I can port much of this from my favorite Java/C# crypto kit from the legion of the bouncy castle of which I was happy to find was a substantial base for this kit.

Whatever you do don’t send any type of message from your crypto kits with aes 256 cipher and sha-256 hashing to Iran from the US. 🙂

Flash 10: Hydra and AIF (Adobe Image Foundation) and Hardware Rendering

Adobe has announced the release of the inital developer views of AIF and Hydra in “Astro” the next version of the flash player (10).

AIF (Adobe Image Foundation) like AIR (Adobe Integrated Runtime) is a new technology just out of the gate but it does show that Adobe is into innovating and the vector wars. AIR is beta2 and Flash player 9 “moviestar” updates for video are coming along nicely but here we have more news out of MAX in Chicago that AIF is now available.

What is AIF? It is a new imaging and effects technology to help people create their own filters for Flash (blur, drop shadow etc are defaults). Hydra the new language for this is reminiscent of (if you haven’t been to since the 90’s then processing is all it is about there) and Cg from nVidia to write and test shaders. The fact that it is based on GLSL (OpenGL Shading Language) will help it easily port shaders coming in 3d gaming into Flash which is really sweet. The direction slowly is that Flash and maybe Silverlight will become more of gaming platforms and this is a nice point in that direction.

From Adobe here is what AIF is:

Introduction to the Adobe Image Foundation Toolkit Technology Preview

The Adobe Image Foundation (AIF) Toolkit preview release includes a high-performance graphics programming language that Adobe is developing for image processing, codenamed Hydra, and an application to create, compile and preview Hydra filters and effects. The toolkit contains a specification for the Hydra language, several sample filters, and sample images provided by AIF team members. The AIF technology delivers a common image and video processing infrastructure which provides automatic runtime optimization on heterogeneous hardware. It currently ships in After Effects CS3 and will be used in other Adobe products in the future. The next release of Flash Player, codenamed Astro, will leverage Hydra to enable developers to create custom filters, effects and blend modes.

Hydra is a programming language used to implement image processing algorithms in a hardware-independent manner. Some benefits of Hydra include:

  • Familiar syntax that is based on GLSL, which is C-based
  • Allows the same filter to run efficiently on different GPU and CPU architectures, including multi-core and multiprocessor systems in a future update
  • Abstracts out the complexity of executing on heterogeneous hardware
  • Supports 3rd party creation and sharing of filters and effects
  • Delivers excellent image processing performance in Adobe products

Reaction is that this is a strong Adobe direction to move towards more capable technology as in AS3 and Hydra and allow more customizable possibly hardware rendered and accelerated shader like technology for Flash filters. The new AVM2 and AS3 allow for faster processing and pixel based operations that you need for buildng filters and or shaders.

This is pretty interesting, it isn’t full blown hardware rendering which would just be excellent. So far hardware accelerated full screen stretching in Flash 9 Moviestar beta and now filters will have an element of hardware capable rendering, it should help performance. Full hardware acceleration seemingly will not happen in Flash 10 so the 3d engines and new 3d elements from Adobe are all software rendered still. However dual and multi-core processing will help rendering of 3d in flash BUT video cards are more prevalent than dual or multi-core for some time. Basic hardware rendering even for a low bar could greatly change the flash platform.

It is still a while off yet but it was good to know that performance and shaders/filters are getting attention but hardware rendering not just yet for 3d and basic drawing/rendering. One thing is for sure, in 2007 developing interactive for the web is being shook up and changing rapidly.

Here’s a video taken by Aral Balkan of the Astro presentation at MAX

JavaFX RIA Test Added to Bubblemark RIA Benchmarks (Flex/Silverlight/Javascript)

Bubblemark has added a JavaFX version of his bubble animation test that spans now all of the RIA technologies out there. Bubblemark is a great site and has been a great site for comparing animation in the browser. Alexey Gavrilov has kept the site up to date on all versions of Silverlight since when it was WPF/E and it is a nice quick baseline test to check FPS performance across these new vector toolkits and scripting.

My results are very similar to Bubblemarks tests:

JavaFX — 14 fps
Firefox + Silverlight (JavaScript) — 56 fps
Firefox + Flex — 62 fps
Adobe AIR — 62 fps
Firefox + Silverlight (CLR) — 99 fps

Silverlight is not final and is quite light compared to Flex (I wonder if a vanilla Flash9/AS3 export has been done or if it would perform any different), but if Silverlight has a lead on FPS, where FPS is really success of any kit in RIA or vector, then it could be a rough battle. Flash/Flex is really far far ahead due to the browser penetration and the development community but the better performance is always a good indicator of possible success. Plus, Microsoft controls the desktop market and any “benefits” it might give their own kit which includes distribution and performance in preloading or caching.

AIR Application Export Panel for Flash CS3

Grant Skinner has one upped the Flash CS3 AIR application export ability by adding a very useful panel to package Adobe AIR applications.

This is a pretty nice tool as usual from gskinner.  Be sure to check out the panel and all the installation info at Grant Skinner’s blog.

Download the AIRPanel zip file from here 

Adobe AIR Apps Starting to Appear

Adobe AIR apps are starting to pop up more. After the Grant Skinner AIR app for it appears Kevin Rose has launched pownce which is a twitter/email/friend/social sharing site/service. The desktop app for is built with AIR. I believe AIR will really take off with these types of apps succeeding on it. Pownce is only alpha but it is hard to see it not being successful with the amount of digg users that will spill over.

Pownce (you have to be invited to private alpha)

Other apps for AIR so far that are usable and ready:

Competitor to I wonder how long til a air app.

Digg Desktop Widget (from Adobe sponsored digg API contest)

Other AIR apps can be viewed here including kuler, a twitter app and more. And also here at Rob Christensen’s blog.

The AIR iPhone Desktop Widget

merhl has created an Adobe AIR iPhone widget for using the AIR runtime that is pretty cool.  It only has some sample screens for most buttons in it but you can actually browse the web on it using the web browser and it flips sideways to show the screen flip.  Check out your website or blog on the desktop iPhone.  Get your AIR iPhone now!


merhl has made it auto updating with AIR so as he adds more functionality it will autoupdate.  That is one neat aspect of doing desktop app/widget work with flash and AS3 in AIR is that it is much more capable of syncing content and that content is usually extremely optimized for fast delivery and keeping it up to date.  Plus you can make chrome and shiny things with it.