<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>cairngorm &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/cairngorm/</link>
	<description>Feed of posts on WordPress.com tagged "cairngorm"</description>
	<pubDate>Sun, 29 Nov 2009 17:33:39 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Speaking at DevSummit]]></title>
<link>http://nsdevaraj.wordpress.com/2009/11/09/speaking-at/</link>
<pubDate>Mon, 09 Nov 2009 12:02:09 +0000</pubDate>
<dc:creator>nsdevaraj</dc:creator>
<guid>http://nsdevaraj.wordpress.com/2009/11/09/speaking-at/</guid>
<description><![CDATA[Looking forward to speak at Adobe DevSummit @Chennai 24/Nov &amp; @Hyd 1/Dec on Topic &#8220;Integra]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Looking forward to speak at Adobe DevSummit @Chennai 24/Nov &#38; @Hyd 1/Dec on Topic &#8220;Integration of Spring with BlazeDS and CairngormUM (Deep Dive)&#8221;</p>
<p>The Presentation Document : <a href="https://docs.google.com/fileview?id=0B5GS-hy1_fsxYjQ3ZmMwYWUtMzQwYi00OTAyLThjZGQtOGUxZjRlNTgxZjAw&#38;hl=en"> link</a> &#38;<br />
<a href="http://docs.google.com/present/edit?id=0AZGS-hy1_fsxYXpxbTlwbjdjdmZfMTFoNjR6NjVmeg&#38;hl=en"> Presentation</a></p>
<div id="attachment_317" class="wp-caption alignnone" style="width: 210px"><img src="http://nsdevaraj.wordpress.com/files/2009/11/badge_speaker_hybdch.jpg" alt="Speaking at Adobe DevSummit" title="Badge_speaker_hybd&#38;ch" width="200" height="260" class="size-full wp-image-317" /><p class="wp-caption-text">DevSummit</p></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Scotland: Central Highlands]]></title>
<link>http://brentandness.wordpress.com/2009/11/05/scotland-central-highlands/</link>
<pubDate>Thu, 05 Nov 2009 13:30:53 +0000</pubDate>
<dc:creator>Brent</dc:creator>
<guid>http://brentandness.wordpress.com/2009/11/05/scotland-central-highlands/</guid>
<description><![CDATA[Feeling nostalgic for a bit of stinky, steamtrain action, we took a trip through Cairngorm national ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Feeling nostalgic for a bit of stinky, steamtrain action, we took a trip through Cairngorm national park.</p>
<div class="wp-caption aligncenter" style="width: 250px"><a title="Steamy by fuglylogic, on Flickr" href="http://www.flickr.com/photos/fuglylogic/3777907610/"><img src="http://farm3.static.flickr.com/2587/3777907610_a27aff2ff7_m.jpg" alt="Steamy" width="240" height="159" /></a><p class="wp-caption-text">Choo choooo</p></div>
<p>It was pretty authentic. There was even a gruff, soot covered engineer. I felt like Ringo Starr should have been narrating in the background.</p>
<div class="wp-caption aligncenter" style="width: 169px"><a title="Gruff engineer by fuglylogic, on Flickr" href="http://www.flickr.com/photos/fuglylogic/3777106617/"><img src="http://farm3.static.flickr.com/2559/3777106617_d567bb5159_m.jpg" alt="Gruff engineer" width="159" height="240" /></a><p class="wp-caption-text">The real deal</p></div>
<p>There wasn&#8217;t really much to see on the way, Vanessa even had a little nap. The train was cool though.</p>
<div class="wp-caption aligncenter" style="width: 250px"><a title="Nap time by fuglylogic, on Flickr" href="http://www.flickr.com/photos/fuglylogic/3777110117/"><img src="http://farm4.static.flickr.com/3503/3777110117_8d923d562c_m.jpg" alt="Nap time" width="240" height="159" /></a><p class="wp-caption-text">Nap time</p></div>
<p>We based ourselves at a camping ground just out of Inverness in Dingwall. We attempted our second disposable BBQ experiment, this time with more success.</p>
<p>I feel a lot of anxiety when cooking a disposable BBQ. There&#8217;s one shot at it, if you don&#8217;t time it properly and get it all right up front then you are screwed. In this sense the disposable BBQ is the <a title="Waterfall model" href="http://en.wikipedia.org/wiki/Waterfall_model" target="_blank">Waterfall</a> of the grilling world. I prefer an approach where you can always chuck the steak back on the hotplate if it is too pink.</p>
<p>As you can see though, Vanessa was in her element &#8211; comandeering a disposable BBQ just as efficiently as a real one.</p>
<div class="wp-caption aligncenter" style="width: 169px"><a title="Disposable BBQ adventures by fuglylogic, on Flickr" href="http://www.flickr.com/photos/fuglylogic/3777120779/"><img src="http://farm4.static.flickr.com/3586/3777120779_16183f42b0_m.jpg" alt="Disposable BBQ adventures" width="159" height="240" /></a><p class="wp-caption-text">Everybody cook or the sausage gets it!</p></div>
<p>Here we  also experienced our first airbed failure. Early in the morning I heard a rrrrptt&#8230;phwoosh noise. It wasn&#8217;t just the after effects of the BBQ either. With that, the Argos airbed hit the bin and an £8 replacement was procured from Tesco.</p>
<p>Oh Tesco, our saviour. We went to Tesco pretty much every day, mainly because we had no means of refrigeration. I think we would have camped in Tesco if we could get away with it. It would have been like Dawn of the Dead, except without zombies. So not nearly as cool in that sense.</p>
<p>We took the obligatory trip over Loch Ness. No sign of the monster. I was genuinely disappointed.</p>
<div class="wp-caption aligncenter" style="width: 250px"><a title="Castle on the loch by fuglylogic, on Flickr" href="http://www.flickr.com/photos/fuglylogic/3777968400/"><img src="http://farm3.static.flickr.com/2593/3777968400_a242ac3b09_m.jpg" alt="Castle on the loch" width="240" height="159" /></a><p class="wp-caption-text">No monster</p></div>
<p>We also took a trip out to the <a title="Black Isle Brewery" href="http://www.blackislebrewery.com/" target="_blank">Black Isle Brewery</a>. I love checking out smaller microbreweries, they always have something a bit different. The oatmeal stout was my favourite.</p>
<p>On the way out there we came across a friendly cow that we dubbed Daisy. She was very quick with the tongue when you got close enough. Daisy may or may not have been her real name.</p>
<div class="wp-caption aligncenter" style="width: 250px"><a title="Daisy by fuglylogic, on Flickr" href="http://www.flickr.com/photos/fuglylogic/3777965714/"><img src="http://farm3.static.flickr.com/2441/3777965714_b14df9c2a6_m.jpg" alt="Daisy" width="240" height="159" /></a><p class="wp-caption-text">Daisy</p></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Presentation: Enterprise Flex using Cairngorm]]></title>
<link>http://jaibeermalik.wordpress.com/2009/11/02/presentation-enterprise-flex-using-cairngorm/</link>
<pubDate>Mon, 02 Nov 2009 04:45:01 +0000</pubDate>
<dc:creator>Jai</dc:creator>
<guid>http://jaibeermalik.wordpress.com/2009/11/02/presentation-enterprise-flex-using-cairngorm/</guid>
<description><![CDATA[This post share the presentation &#8220;Enterprise Flex using Cairngorm&#8221; based on the differen]]></description>
<content:encoded><![CDATA[This post share the presentation &#8220;Enterprise Flex using Cairngorm&#8221; based on the differen]]></content:encoded>
</item>
<item>
<title><![CDATA[Sheffield Steel City Beer Festival 2009, real quick fight thoughts]]></title>
<link>http://apintandafight.wordpress.com/2009/10/09/sheffield-steel-city-beer-festival-2009-real-quick-fight-thoughts/</link>
<pubDate>Fri, 09 Oct 2009 13:07:16 +0000</pubDate>
<dc:creator>jaytee46</dc:creator>
<guid>http://apintandafight.wordpress.com/2009/10/09/sheffield-steel-city-beer-festival-2009-real-quick-fight-thoughts/</guid>
<description><![CDATA[Have got about a dozen or so non-festival beers from the past month to catch up on at a later date, ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Have got about a dozen or so non-festival beers from the past month to catch up on at a later date, a couple of good ones to recommend but will do the festival and fight notes first or else I&#8217;ll never get round to it. The fight thoughts first:</p>
<p>- Audley Harrison wins Prizefighters. And hilariously thinks that he&#8217;d have been a world champion but for crap promoting by Warren. Now, I don&#8217;t know about you, but I think his lack of world title is correlated to the fact that he sucks and is unmarketable. His fights are boring apart from the odd occasion when he gets knocked out. If he was to get a title shot against, say, Valuev, that might be the worst fight in the history of professional boxing.</p>
<p>- Floyd Mayweather beats Marquez. Thank god for that, bring on Pacquiao. Post-bout interview was hilariously bad, sure Mosley is good but he&#8217;s not seriously going to get a shot at Mayweather as he&#8217;s only back to make cash money, and that fight, while it makes sense, wouldn&#8217;t really cut it.</p>
<p>- UFC 103 didn&#8217;t look that great a card so I passed on it. Return of Belfort and dos Santos knocking Mirko into retirement. 104 looks a lot better, even the undercard looks exciting.</p>
<p>- LOL Kimbo.</p>
<p>Beer festival then. Was a lot better than last years, due to it not being freezing, actually having the second marquee up, solid conditions underfoot and a great selection of beers. Was a bit windy on the Saturday, but oh well. The beer:</p>
<p>206 &#8211; Fyfe Lemon Twist (4.2%) &#8211; 5.5, is noticably lemony, light and thin, beyond the citrusness is a bland, unimaginative ale</p>
<p>207 &#8211; Tring Mansion Mild (3.7%) &#8211; 8, slightly fruity nose, hints of cherry and raspberry, not overly heavy either</p>
<p>208 &#8211; Great Heck Dave (3.8%) &#8211; 7, dark ale with smoky roasted taste, while not being too malty</p>
<p>209 &#8211; Cairngorm Sheepshaggers&#8217; Gold (4.5%) &#8211; 8, slight ginger hints, a lot fuller and stronger than previous beers, very drinkable golden premium beer</p>
<p>210 &#8211; Brass Monkey Tamarind Mild (3.6%) &#8211; 6.5, looks like a reddish bitter rather than a mild, is ok, barely tastes like a mild either</p>
<p>211 &#8211; Naylor&#8217;s Roaring Ruby (4.1%) &#8211; 7, calling it ruby would be wrong, just looks and tastes like a solid golden bitter</p>
<p>212 &#8211; Sheffield Crucible Best (3.8%) &#8211; 6.5, a decent bitter that seems stronger than the ABV would suggest</p>
<p>213 &#8211; Isle of Purbeck Studland Bay (4.5%) &#8211; 7, a rich, punchy bitter</p>
<p>214 &#8211; Wilkins Cider (6.0%) &#8211; 6.5, on the sweet side, decent enough to drink, a bit cloudy</p>
<p>215 &#8211; Bradfield Sheffield Tigers (4.8%) &#8211; 7.5, recommended stronger ale</p>
<p>216 &#8211; Brew Company Hop Ripper (4.3%) &#8211; 6.5, light, hoppy, dry, bad to start with but improves quickly</p>
<p>217 &#8211; Kelham Island Best Bitter (3.8%) &#8211; 6, looks like a bitter, tastes like a bitter, is ok but a bit dull and a touch on the dry side</p>
<p>218 &#8211; Tryst Bla&#8217;tham (4.0%) &#8211; 7.5, seems hoppy in the nose, is slightly tangy and sour but in a good way, slightly citrusy, improves a lot down the pint</p>
<p>219 &#8211; Acorn Sovereign (4.4%) &#8211; 6, darker ale, malty smell, strong bodied but with a dull malty taste</p>
<p>220 &#8211; Daleside Old Leg Over (3.9%) &#8211; 7, good bitter, touch on the dark side with ruby hints</p>
<p>221 &#8211; Crown Smokin Oktoberfest (5.7%) &#8211; 8, pleasant colour, strength is noticable, nice subtlety with flavours</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Codename Gravity: Exciting new technology coming to Adobe Labs]]></title>
<link>http://stacyyoung.org/2009/10/02/gravity-exciting-new-technology-coming-to-adobe-labs/</link>
<pubDate>Fri, 02 Oct 2009 20:09:06 +0000</pubDate>
<dc:creator>Stacy Young</dc:creator>
<guid>http://stacyyoung.org/2009/10/02/gravity-exciting-new-technology-coming-to-adobe-labs/</guid>
<description><![CDATA[Gravity is an ActionScript framework that offers a modularization strategy inspired by implementatio]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Gravity is an ActionScript framework that offers a modularization strategy inspired by <span style="text-decoration:line-through;">implementation of</span> <a href="http://www.osgi.org/About/Technology" target="_blank">OSGi</a> . In short, it&#8217;s a dynamic plug-in framework for ActionScript, Flex and AIR applications. While geared towards addressing challenges in the Enterprise RIA space, there&#8217;s nothing stopping developers from using this technology any time their project(s) call for modularization and loose coupling.</p>
<p>One exciting feature in the pipeline will be support for plug-ins compiled under different versions of the Flex SDK. This allows developers to roll out new functionality without having to refactor and re-compile existing code. (<em>We are not using Flex modules under the hood</em>) Another important goal was to avoid being prescriptive as to how you actually develop your application code. i.e. Gravity will &#8220;play nice&#8221; with the likes of Cairngorm and other frameworks/best-practices.</p>
<p>As for the history of this project, it&#8217;s been used internally @Adobe and in product dating back a couple of years now. (and yes, we deserve some lashings for not getting this out sooner) Throughout that time momentum of OSGi has continued onward and upward, particularly in the Java and mobile space. More recently, in the Flex realm with the release of <a href="http://www.potomacframework.org/">Potomac</a>. Potomac takes different approach than Gravity but is exciting to see and offers further validation of OSGi in the client space. (They&#8217;ve got a great IDE plug-in as well) The more the merrier!</p>
<p>The initial Gravity release will contain the framework, ASDocs and supporting documentation (not extensive at first, more of a quick start) as well as sample projects. Look for it on Adobe Labs in the coming 2-3 weeks! We&#8217;ll be following the open source model adopted by the Flex SDK team in due course.</p>
<p>Cheers,</p>
<p>Stacy</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Adobe Flex Frameworks]]></title>
<link>http://thulasiramsoft.wordpress.com/2009/09/04/adobe-flex-frameworks/</link>
<pubDate>Thu, 03 Sep 2009 19:53:00 +0000</pubDate>
<dc:creator>Thulasiram S</dc:creator>
<guid>http://thulasiramsoft.wordpress.com/2009/09/04/adobe-flex-frameworks/</guid>
<description><![CDATA[Adobe Flex Frameworks Frameworks and APIs &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div align="center" class="MsoNormal" style="text-align:center;"><b><u><span style="font-size:14pt;line-height:115%;">Adobe Flex Frameworks</span></u></b><span style="font-size:12pt;line-height:115%;"></span></div>
<div class="MsoNormal"><b><span style="font-size:12pt;line-height:115%;">Frameworks and APIs</span></b></div>
<div class="MsoNormal"><span style="font-size:12pt;line-height:115%;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; The Flash Platform, specific to the Flex ecosystem, encompasses a multitude of APIs and frameworks.</span></div>
<div class="MsoNormal"><b><span style="font-size:14pt;line-height:115%;">Flash Player APIs</span></b></div>
<div class="MsoNormal"><span style="font-size:12pt;line-height:115%;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; The Flash Player APIs are considered to be the base frameworks necessary to compile an Action Script 3.0 application and include the core Action Script 3.0 classes and functionality built into the VM, and the playerglobal.swc class library, which is required by both the Flash and the Flex compiler. </p>
<p></span></div>
<div class="MsoNormal"><b><span style="font-size:14pt;line-height:115%;">Flex Framework</span></b></div>
<div class="MsoNormal"><span style="font-size:12pt;line-height:115%;">The Flex frameworks is a composite of the core visual components, enhancements to the event flow, metadata tags for compiler declarations, and utility and communications classes. It is also composed of several “sub frameworks” or APIs offering specialized functionality they are…</span></div>
<div class="MsoListParagraphCxSpFirst" style="text-indent:-.25in;"><span style="font-family:Wingdings;font-size:12pt;line-height:115%;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b><span style="font-size:12pt;line-height:115%;">Flex charting and data visualization components</span></b><span style="font-size:12pt;line-height:115%;"> – Although not a part of the open-source Flex SDK, the charting components are licensed with Flex Builder and are considered to be a part of the Flex Framework.</span></div>
<div class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;"><span style="font-family:Wingdings;font-size:12pt;line-height:115%;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b><span style="font-size:12pt;line-height:115%;">Deep linking framework – </span></b><span style="font-size:12pt;line-height:115%;">This enables enhanced state-integration functionality in the browser.<b></b></span></div>
<div class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;"><span style="font-family:Wingdings;font-size:12pt;line-height:115%;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b><span style="font-size:12pt;line-height:115%;">Logging framework – </span></b><span style="font-size:12pt;line-height:115%;">This allows an application to capture and log messages to text components, class objects, or text files, functioning like an enhanced trace() method.<b></b></span></div>
<div class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;"><span style="font-family:Wingdings;font-size:12pt;line-height:115%;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b><span style="font-size:12pt;line-height:115%;">Automation framework – </span></b><span style="font-size:12pt;line-height:115%;">This allows for automated testing, gathering metrics on application performance and multiple client application synchronization and browsing.<b></b></span></div>
<div class="MsoListParagraphCxSpLast" style="text-indent:-.25in;"><span style="font-family:Wingdings;font-size:12pt;line-height:115%;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b><span style="font-size:12pt;line-height:115%;">Messaging API – </span></b><span style="font-size:12pt;line-height:115%;">These classes are used to communicate with BlazeDS data services.</p>
<p><b></b></span></div>
<div class="MsoNormal"><b><span style="line-height:115%;"><span style="font-size:x-large;">The AIR APIs</span></span></b></div>
<div class="MsoNormal"><span style="font-size:12pt;line-height:115%;">Adobe AIR consists of two main APIs</span></div>
<div class="MsoListParagraphCxSpFirst" style="text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span>The Flash AIR API, which extends the core Flash Player APIs enabling AIR applications to be authored in Flash CS4</div>
<div class="MsoListParagraphCxSpLast" style="text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span>The Flex AIR API, which is a part of the Flex Framework, available for Flex AIR application compilation.</div>
<div class="MsoNormal"><b><span style="line-height:115%;"><span style="font-size:x-large;">Other Adobe Frameworks</span></span></b></div>
<div class="MsoNormal">Other Adobe frameworks that can assist in the development of Flex or AIR applications include the following:</div>
<div class="MsoListParagraphCxSpFirst" style="text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b>As3corelib </b>is an action script 3.0 library that contains a number of helper classes and utilities for working with MD5 and SHA 1 hashing, image encoding, and JSON serialization, as well as extensions to the String, Number and Date APIs. <a href="http://code.google.com/p/as3corelib/">http://code.google.com/p/as3corelib/</a> for more information.</div>
<div class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b>Cairngorm </b>is an architectural framework or “micro-architecture,” composed of several recognizable J2EE design patterns, that encourages best practices in Flex application development, as endorsed by Adobe Consulting. Cairngorm is considered to be a standard for coding enterprise level architectures in Flex <a href="http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm">http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm</a> for more information.<b></b></div>
<div class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b>Flex Unit </b>is a unit-testing framework for Flex and action script 3.0 applications and libraries. It mimics the functionality of JUint, a Java unit0testing framework, and comes with a graphical test runner, <a href="http://opensource.adobe.com/wiki/display/flexunit/FlexUniti">http://opensource.adobe.com/wiki/display/flexunit/FlexUniti</a> for more information.<b></b></div>
<div class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b>Adobe AIR Update Framework </b>is a collection of best practices and APIs that assist in the development of AIR application auto update functionality, which includes checking for downloadable updates to the AIR application, alerting the user of a newer version of the application, and displaying information about the application version and the opt-in choices for updating the application <a href="http://labs.adobe.com/wiki/index.php/Adobe_AIR_Update_Framework">http://labs.adobe.com/wiki/index.php/Adobe_AIR_Update_Framework</a> for more information.<b></b></div>
<div class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b>Adobe Spry Framework, </b>although slightly outside of the scope of the Flex ecosystem, is an AJAX framework noteworthy for its use in AJAX AIR applications <a href="http://labs.adboe.com/technologies/spry/home.html">http://labs.adboe.com/technologies/spry/home.html</a> for more information.<b></b></div>
<div class="MsoListParagraphCxSpLast" style="text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b>Adobe Data Services Stress-Testing Framework </b>helps developers using Live Cycle Data Services ES 2.6 load test the server-side implementation of their LCDS applications. This framework is not currently compatible with BlazeDS, although BlazeDS support is planned for future versions of the tool. <a href="http://labs.adobe.com/wiki/index.php/Flex_Stress_Testing_Framework">http://labs.adobe.com/wiki/index.php/Flex_Stress_Testing_Framework</a> for information.</p>
<p><b></b></div>
<div class="MsoNormal" style="margin-left:.25in;"><b><span style="line-height:115%;"><span style="font-size:x-large;">Third-Party Frameworks and Components</span></span></b></div>
<div class="MsoNormal" style="margin-left:.25in;">Popular third-party components and frameworks for Flex include:</div>
<div class="MsoListParagraphCxSpFirst" style="margin-left:.75in;text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b>ILOG Elixir </b>is a set of advanced data visualization components. Built in partnership with Adobe, ILOG offers high-performance visualization components with unique with rich UI for Adobe Flex applications. See <a href="http://www.ilog.com/products/ilogelixir">www.ilog.com/products/ilogelixir</a> for more information.</div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left:.75in;text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b>Zend PHP Framework </b>brings together the flexibility and enterprise reliability of the Zend PHP platform with the advantages of Adobe technologies such as an AMF implementation for PHP. This is the result of collaboration between Adobe and Zend to add Adobe technologies to the open-source Zend Framework Project. See <a href="http://framework.zend.com/">http://framework.zend.com</a> for more information.</div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left:.75in;text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b>FlexLib </b>is an impressive open-source community effort to create additional UI components for Flex 2 and 3. Adobe has contributed a few components and libraries, such as the Flex Scheduling Components, to FlexLib. See <a href="http://code.google.com/p/flexlib">http://code.google.com/p/flexlib</a> for more information.</div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left:.75in;text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b>OpenFlux </b>is an open-source component framework for Flex that offers a radically different way of building components in Flex. Inspired by the upcoming Flex 5 beta (“Gumbo”) specification, OpenFlux is a component framew0ork that uses intrinsic view and controller properties to control each component’s display and behavior, respectively. This offers a very flexible MVC approach each component’s display and behavior, respectively. This offers a very flexible MVC approach to component usage for Flex3 applications. See <a href="http://code.google.com/p/openflux">http://code.google.com/p/openflux</a> for more information.</div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left:.75in;text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b>Other architectural frameworks </b>include the EasyMVC framework (<a href="http://projects.simb.net/easyMVC">http://projects.simb.net/easyMVC</a>), the PureMVC framework(<a href="http://puremvc.org/">http://puremvc.org</a>), the Mate framework (<a href="http://mate.asfusion.com/">http://mate.asfusion.com</a>), and the swiz framework (<a href="http://code.google.com/p/swizframework">http://code.google.com/p/swizframework</a> ), to name but a few.</div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left:.75in;text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b>Papervision3D </b>(<a href="http://www.papervison3d.org/">www.papervison3d.org</a>) is an impressive 3D rendering framework for Action Script 3.0 and is considered the gold standard of 3D frameworks in Flash; it is popular Away 3D (<a href="http://away3d.com/">http://away3d.com</a>), Sandy (<a href="http://www.flashsandy.org/">www.flashsandy.org</a>), and Alternative3D (<a href="http://alternativaplatform.com/en/alternativa3d">http://alternativaplatform.com/en/alternativa3d</a>).</div>
<div class="MsoListParagraphCxSpLast" style="margin-left:.75in;text-indent:-.25in;"><span style="font-family:Wingdings;">Ø<span style="font:normal normal normal 7pt/normal 'Times New Roman';">&#160; </span></span><b>Degrafa,</b> which stands for Declarative Graphics Framework, is an open source initiative that enables Flex developers to create shapes with the Flash Drawing API in MXML using an intuitive XML-based declarative markup similar to the SVG format. Seewww.degrafa.com for more information.</div>
<p><span style="font-family:Verdana, arial, sans-serif;font-size:11px;line-height:16px;"></span><br />
<table border="0" cellpadding="5" cellspacing="0" class="sectionMacro" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin-top:3px;">
<tbody>
<tr style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;">
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:none;border-width:initial;padding:3px 4px;" valign="top" width="20%">
</td>
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:none;border-width:initial;padding:3px 4px;" valign="top" width="80%">
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;">Links to Frameworks</h2>
<div>
<li>BlazeDS, in the&#160;<tt><a href="http://opensource.adobe.com/svn/opensource/blazeds" style="color:#274dac;text-decoration:none;" target="_blank">/blazeds<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></tt>&#160;directory</li>
<li>Cairngorm, in the&#160;<tt><a href="http://opensource.adobe.com/svn/opensource/cairngorm" style="color:#274dac;text-decoration:none;" target="_blank">/cairngorm<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></tt>&#160;directory</li>
<li>Durango, in the&#160;<tt><a href="http://opensource.adobe.com/svn/opensource/durango" style="color:#274dac;text-decoration:none;" target="_blank">/durango<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></tt>&#160;directory</li>
<li>Flex SDK, in the&#160;<tt><a href="http://opensource.adobe.com/svn/opensource/flex/sdk" style="color:#274dac;text-decoration:none;" target="_blank">/flex/sdk<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></tt>&#160;directory</li>
<li>FlexPMD, in the&#160;<tt><a href="http://opensource.adobe.com/svn/opensource/flexpmd" style="color:#274dac;text-decoration:none;" target="_blank">/flexpmd<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></tt>&#160;directory</li>
<li>FlexUnit, in the&#160;<tt><a href="http://opensource.adobe.com/svn/opensource/flexunit" style="color:#274dac;text-decoration:none;" target="_blank">/flexunit<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></tt>&#160;directory</li>
<li>Open Source Media Framework (OSMF), in the&#160;<tt><a href="http://opensource.adobe.com/svn/opensource/osmf" style="color:#274dac;text-decoration:none;" target="_blank">/osmf<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></tt>&#160;directory</li>
<li>Text Layout Framework (TLF), in the&#160;<tt><a href="http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/frameworks/projects/textLayout" style="color:#274dac;text-decoration:none;" target="_blank">/flex/sdk/trunk/frameworks/projects/textLayout<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></tt>&#160;directory.</li>
<p></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"></h2>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;">Summary</h2>
<table class="confluenceTable" style="border-collapse:collapse;color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:5px;">
<tbody>
<tr style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;">
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">BlazeDS</td>
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">Access as:&#160;<a href="http://opensource.adobe.com/svn/opensource/blazeds" style="color:#274dac;text-decoration:none;" target="_blank">http://opensource.adobe.com/svn/opensource/blazeds<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a><br />Commits forum:&#160;<a href="http://www.adobeforums.com/webx/.3c061bb9" style="color:#274dac;text-decoration:none;" target="_blank">http://www.adobeforums.com/webx/.3c061bb9<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></td>
</tr>
<tr style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;">
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">Cairngorm</td>
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">Access as:&#160;<a href="http://opensource.adobe.com/svn/opensource/cairngorm" style="color:#274dac;text-decoration:none;" target="_blank">http://opensource.adobe.com/svn/opensource/blazeds<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a><br />Commits forum:&#160;<a href="http://www.adobeforums.com/webx/.59b5b4ec/" style="color:#274dac;text-decoration:none;" target="_blank">http://www.adobeforums.com/webx/.59b5b4ec/<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></td>
</tr>
<tr style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;">
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">Durango</td>
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">Access as:&#160;<a href="http://opensource.adobe.com/svn/opensource/durango" style="color:#274dac;text-decoration:none;" target="_blank">http://opensource.adobe.com/svn/opensource/durango<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></td>
</tr>
<tr style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;">
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">Flex SDK</td>
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">Access as:&#160;<a href="http://opensource.adobe.com/svn/opensource/flex/sdk" style="color:#274dac;text-decoration:none;" target="_blank">http://opensource.adobe.com/svn/opensource/flex/sdk<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a><br />Commits forum:&#160;<a href="http://www.adobeforums.com/webx/.3c061177" style="color:#274dac;text-decoration:none;" target="_blank">http://www.adobeforums.com/webx/.3c061177<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></td>
</tr>
<tr style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;">
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">FlexPMD</td>
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">Access as:&#160;<a href="http://opensource.adobe.com/svn/opensource/flexpmd" style="color:#274dac;text-decoration:none;" target="_blank">http://opensource.adobe.com/svn/opensource/flexpmd<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></td>
</tr>
<tr style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;">
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">FlexUnit</td>
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">Access as:&#160;<a href="http://opensource.adobe.com/svn/opensource/flexunit" style="color:#274dac;text-decoration:none;" target="_blank">http://opensource.adobe.com/svn/opensource/flexunit<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a><br />Commits forum:&#160;<a href="http://www.adobeforums.com/webx/.59b62b94/" style="color:#274dac;text-decoration:none;" target="_blank">http://www.adobeforums.com/webx/.59b62b94<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></td>
</tr>
<tr style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;">
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">Open Source Media Framework (OSMF)</td>
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">Access as:&#160;<a href="http://opensource.adobe.com/svn/opensource/flexunit" style="color:#274dac;text-decoration:none;" target="_blank">http://opensource.adobe.com/svn/opensource/osmf<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a><br />Commits forum:&#160;<a href="http://forums.adobe.com/community/opensource/osmf/commits" style="color:#274dac;text-decoration:none;" target="_blank">http://forums.adobe.com/community/opensource/osmf/commits<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></td>
</tr>
<tr style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;">
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">Text Layout Framework (TLF)</td>
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:solid;border-width:initial;padding:3px 4px;">Access as:<a href="http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/frameworks/projects/textLayout" style="color:#274dac;text-decoration:none;" target="_blank">http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/frameworks/projects/textLayout<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></td>
</tr>
</tbody>
</table>
</td>
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:none;border-width:initial;padding:3px 4px;" valign="top" width="20%">
<div class="quick-links" style="background-attachment:initial;background-color:#dbdeea;background-image:initial;background-position:initial initial;background-repeat:initial;float:right;margin-bottom:5px;width:200px;padding:5px;">
<div style="width:180px;margin:0 auto;padding:3px;">
<div class="sidenavlinks sidenavtitle-page" style="color:black;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:bold;">Adobe Open Source</div>
<div class="sidenavlinks"><a href="http://opensource.adobe.com/wiki/display/site/About" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">About</a><br /><a href="http://opensource.adobe.com/wiki/display/site/Forums" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">Feedback</a><br /><a href="http://opensource.adobe.com/wiki/display/site/Contributor+Agreement" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">Contributor Agreement</a>&#160;</div>
</div>
</div>
<table style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;">
<tbody></tbody>
</table>
<div class="quick-links" style="background-attachment:initial;background-color:#dbdeea;background-image:initial;background-position:initial initial;background-repeat:initial;float:right;margin-bottom:5px;width:200px;padding:5px;">
<div style="width:180px;margin:0 auto;padding:3px;">
<div class="sidenavlinks sidenavtitle-page" style="color:black;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:bold;">Projects</div>
<div class="sidenavlinks"><a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">BlazeDS</a><br /><a href="http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">Cairngorm</a><br /><a href="http://opensource.adobe.com/wiki/display/durango/Durango" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">Durango</a><br /><a href="http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">Flex SDK</a><br /><a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">FlexPMD</a><br /><a href="http://opensource.adobe.com/wiki/display/flexunit/FlexUnit" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">FlexUnit</a><br /><a href="http://opensource.adobe.com/wiki/display/gil/Generic+Image+Library" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">Generic Image Library</a><br /><a href="http://opensource.adobe.com/wiki/display/osmf/Open+Source+Media+Framework" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">Open Source Media Framework</a><br /><a href="http://opensource.adobe.com/wiki/display/tlf/Text+Layout+Framework" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">Text Layout Framework</a><br /><a href="http://opensource.adobe.com/wiki/display/webkit/Webkit" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">Webkit</a><br /><a href="http://opensource.adobe.com/wiki/display/site/Source" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;"></a><br /><a href="http://opensource.adobe.com/wiki/display/site/Projects" style="color:#274dac;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;text-decoration:none;">More ›</a>&#160;</div>
</div>
</div>
<table style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;"></table>
</td>
</tr>
</tbody>
</table>
<p><span style="font-family:Verdana, arial, sans-serif;font-size:11px;line-height:16px;"></span><br />
<table border="0" cellpadding="5" cellspacing="0" class="sectionMacro" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin-top:3px;">
<tbody>
<tr style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;">
<td class="confluenceTd" style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;vertical-align:top;border-color:rgb(204,204,204) rgb(204,204,204) initial;border-style:none;border-width:initial;padding:3px 4px;" valign="top" width="80%">
<h1 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:#455264;font-family:Arial, Helvetica, sans-serif;font-size:24px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-Projects" style="color:#274dac;text-decoration:none;"></a>Projects</h1>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">Adobe is active in Open Source projects. The following are a number of our contributions and commitments to open source.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"></div>
<div class="rbtoc1252011494742" style="margin-left:0;padding:0;">
<ul style="list-style-image:initial;list-style-position:initial;list-style-type:none;margin:16px 0;padding:0 3em 0 20px;">
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-BlazeDS" style="color:#274dac;text-decoration:none;">BlazeDS</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-Cairngorm" style="color:#274dac;text-decoration:none;">Cairngorm</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-Durango" style="color:#274dac;text-decoration:none;">Durango</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-ExtensibleMetadataPlatform%28XMP%29" style="color:#274dac;text-decoration:none;">Extensible Metadata Platform (XMP)</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-FlashAjaxVideoComponent" style="color:#274dac;text-decoration:none;">Flash Ajax Video Component</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-FlexSDK" style="color:#274dac;text-decoration:none;">Flex SDK</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-FlexPMD" style="color:#274dac;text-decoration:none;">FlexPMD</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-FlexUnit" style="color:#274dac;text-decoration:none;">FlexUnit</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-GenericImageLibrary" style="color:#274dac;text-decoration:none;">Generic Image Library</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-OpenSourceMediaFramework" style="color:#274dac;text-decoration:none;">Open Source Media Framework</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-AdobeMediaGallery" style="color:#274dac;text-decoration:none;">Adobe Media Gallery</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-AdobeSourceLibraries" style="color:#274dac;text-decoration:none;">Adobe Source Libraries</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-Tamarin" style="color:#274dac;text-decoration:none;">Tamarin</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-TextLayoutFramework" style="color:#274dac;text-decoration:none;">Text Layout Framework</a></li>
<li style="margin-left:0;padding-left:0;"><a href="http://opensource.adobe.com/wiki/display/site/Projects#Projects-Webkit" style="color:#274dac;text-decoration:none;">Webkit</a></li>
</ul>
</div>
<p>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-BlazeDS" style="color:#274dac;text-decoration:none;"></a>BlazeDS</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">BlazeDS is the server-based Java remoting and web messaging technology that enables developers to easily connect to back-end distributed data and push data in real-time to Adobe® Flex™ and Adobe AIR™ applications for more responsive rich Internet application (RIA) experiences. Previously available only as part of Adobe LiveCycle® Data Services ES, Adobe is announcing its plans to contribute the proven BlazeDS technologies to the community under the LGPL v3. BlazeDS gives the rapidly growing Adobe developer community free access to the powerful remoting and messaging technologies developed by Adobe.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS" style="color:#274dac;text-decoration:none;" title="BlazeDS">Home</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/blazeds/Downloads" style="color:#274dac;text-decoration:none;" title="Downloads">Downloads</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/blazeds/Source" style="color:#274dac;text-decoration:none;" title="Source">Source</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/blazeds/Developer+Documentation" style="color:#274dac;text-decoration:none;" title="Developer Documentation">Documentation</a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-Cairngorm" style="color:#274dac;text-decoration:none;"></a>Cairngorm</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">Cairngorm is the lightweight micro-architecture for rich Internet applications built in Flex or AIR. A collaboration of recognized design patterns, Cairngorm exemplifies and encourages best-practices for RIA development advocated by Adobe Consulting, encourages best-practice leverage of the underlying Flex framework, while making it easier for medium to large teams of software engineers deliver medium to large scale, mission-critical rich Internet applications. Previously available only as Adobe Consulting releases through labs.adobe.com, Cairngorm is now evolving towards a project that will invite community leaders and enterprise adopters to partner with Adobe Consulting in the ongoing development of Cairngorm.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm" style="color:#274dac;text-decoration:none;" title="Cairngorm">Home</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/cairngorm/Downloads" style="color:#274dac;text-decoration:none;" title="Downloads">Downloads</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/cairngorm/Get+Source+Code" style="color:#274dac;text-decoration:none;" title="Get Source Code">Source</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/cairngorm/Developer+Documentation" style="color:#274dac;text-decoration:none;" title="Developer Documentation">Documentation</a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-Durango" style="color:#274dac;text-decoration:none;"></a>Durango</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">Durango is a framework that allows developers to build Adobe AIR applications that can be customized by end-users. Durango allows developers, designers and end-users to easily mashup independent components to create new applications or extend existing Durango-enabled applications. These &#8220;mashable&#8221; components can be visual or non-visual (e.g., web services). Designers and developers can rapidly create prototype applications and then generate Adobe Flex MXML source projects for further development. End-users can take parts of their favorite applications and bring them together in new ways.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://opensource.adobe.com/wiki/display/durango/Durango" style="color:#274dac;text-decoration:none;" title="Durango">Home</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/durango/Downloads" style="color:#274dac;text-decoration:none;" title="Downloads">Downloads</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/durango/Get+Source+Code" style="color:#274dac;text-decoration:none;" title="Get Source Code">Source</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/durango/Developer+Documentation" style="color:#274dac;text-decoration:none;" title="Developer Documentation">Documentation</a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-ExtensibleMetadataPlatform%28XMP%29" style="color:#274dac;text-decoration:none;"></a>Extensible Metadata Platform (XMP)</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">Adobe&#8217;s Extensible Metadata Platform (XMP) is a labeling technology that allows you to embed data about a file, known as metadata, into the file itself. With XMP, desktop applications and back-end publishing systems gain a common method for capturing, sharing, and leveraging this valuable metadata—opening the door for more efficient job processing, workflow automation, and rights management, among many other possibilities. The XMP SDK is available as open source.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://www.adobe.com/products/xmp/" style="color:#274dac;text-decoration:none;" target="_blank">Home<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a>&#160;&#124;&#160;<a href="http://www.adobe.com/devnet/xmp/" style="color:#274dac;text-decoration:none;" target="_blank">Downloads<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-FlashAjaxVideoComponent" style="color:#274dac;text-decoration:none;"></a>Flash Ajax Video Component</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">The Flash Ajax Video (FAVideo) component is a small, open source Flash component that you can use to provide video playback within an Ajax application. It exposes all of the formatting and video playback controls necessary to build a video player customized entirely using HTML and Javascript.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://labs.adobe.com/wiki/index.php/Flash-Ajax_Video_Component" style="color:#274dac;text-decoration:none;" target="_blank">Home<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a>&#160;&#124;&#160;<a href="http://labs.adobe.com/wiki/index.php/Flash-Ajax_Video_Component#Download_and_Installation" style="color:#274dac;text-decoration:none;" target="_blank">Downloads<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-FlexSDK" style="color:#274dac;text-decoration:none;"></a>Flex SDK</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">Adobe® Flex™ is a cross platform, open source framework for creating rich Internet applications that run identically in all major browsers and operating systems. The Adobe® Flex™ SDK is the foundation of Flex, providing the core Flex compilers, component library and debugger. Using only the free SDK and an IDE of your choice, you can build and deploy rich Flex applications.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK" style="color:#274dac;text-decoration:none;" title="Flex SDK">Home</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/flexsdk/Downloads" style="color:#274dac;text-decoration:none;" title="Downloads">Downloads</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/flexsdk/Get+Source+Code" style="color:#274dac;text-decoration:none;" title="Get Source Code">Source</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/flexsdk/Developer+Documentation" style="color:#274dac;text-decoration:none;" title="Developer Documentation">Documentation</a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-FlexPMD" style="color:#274dac;text-decoration:none;"></a>FlexPMD</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">FlexPMD is a tool that helps to improve code quality by auditing any AS3/Flex source directory and detecting common bad practices, such as Unused code (functions, variables, constants, etc.), Over-complex code (nested loops, too many conditionals, etc.), Over-long code (classes, methods, etc.), and Incorrect use of the Flex component lifecycle (commitProperties, etc.).</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD" style="color:#274dac;text-decoration:none;" title="FlexPMD">Home</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/flexpmd/Downloads" style="color:#274dac;text-decoration:none;" title="Downloads">Downloads</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/flexpmd/Get+Source+Code" style="color:#274dac;text-decoration:none;" title="Get Source Code">Source</a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-FlexUnit" style="color:#274dac;text-decoration:none;"></a>FlexUnit</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">FlexUnit is a unit testing framework for Flex and ActionScript 3.0 applications and libraries. It mimics the functionality of JUnit, a Java unit testing framework, and comes with a graphical test runner.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://opensource.adobe.com/wiki/display/flexunit/FlexUnit" style="color:#274dac;text-decoration:none;" title="FlexUnit">Home</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/flexunit/Downloads" style="color:#274dac;text-decoration:none;" title="Downloads">Downloads</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/flexunit/Get+Source+Code" style="color:#274dac;text-decoration:none;" title="Get Source Code">Source</a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-GenericImageLibrary" style="color:#274dac;text-decoration:none;"></a>Generic Image Library</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">Generic Image Library (GIL) is a C++ generic library which allows for writing generic imaging algorithms with performance comparable to hand-writing for a particular image type.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://opensource.adobe.com/wiki/display/gil/Generic+Image+Library" style="color:#274dac;text-decoration:none;" title="Generic Image Library">Home</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/gil/Downloads" style="color:#274dac;text-decoration:none;" title="Downloads">Downloads</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/gil/Developer+Documentation" style="color:#274dac;text-decoration:none;" title="Developer Documentation">Documentation</a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-OpenSourceMediaFramework" style="color:#274dac;text-decoration:none;"></a>Open Source Media Framework</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">Open Source Media Framework enables developers to easily assemble pluggable components to create high-quality, full-featured playback experiences. The open aspect of the framework enables collaborative development for web video monetization, with lower costs and faster turnaround.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://opensource.adobe.com/wiki/display/osmf/Open+Source+Media+Framework" style="color:#274dac;text-decoration:none;" title="Open Source Media Framework">Home</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/osmf/Downloads" style="color:#274dac;text-decoration:none;" title="Downloads">Downloads</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/osmf/Get+Source+Code" style="color:#274dac;text-decoration:none;" title="Get Source Code">Source</a>&#160;&#124;&#160;<a href="http://opensource.adobe.com/wiki/display/osmf/Developer+Documentation" style="color:#274dac;text-decoration:none;" title="Developer Documentation">Documentation</a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-AdobeMediaGallery" style="color:#274dac;text-decoration:none;"></a>Adobe Media Gallery</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">The Adobe Media Gallery (AMG) is a Flash web photo and video gallery whose appearance and behavior can be customized via XML files.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://stlab.adobe.com/amg/" style="color:#274dac;text-decoration:none;" target="_blank">Home<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a>&#160;&#124;&#160;<a href="http://sourceforge.net/project/showfiles.php?group_id=177593" style="color:#274dac;text-decoration:none;" target="_blank">Downloads<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a>&#160;&#124;&#160;<a href="http://stlab.adobe.com/amg/amg_perforce_depot.html" style="color:#274dac;text-decoration:none;" target="_blank">Source<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a>&#160;&#124;&#160;<a href="http://stlab.adobe.com/amg/amg_documentation.html" style="color:#274dac;text-decoration:none;" target="_blank">Documentation<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-AdobeSourceLibraries" style="color:#274dac;text-decoration:none;"></a>Adobe Source Libraries</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">The Adobe Source Libraries (ASL) are a collection of C++ libraries building foundation technology to allow the construction of commercial applications by assembling generic algorithms through declarative descriptions. Updates monthly.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://stlab.adobe.com/" style="color:#274dac;text-decoration:none;" target="_blank">Home<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a>&#160;&#124;&#160;<a href="http://sourceforge.net/project/showfiles.php?group_id=132417&#38;package_id=145420" style="color:#274dac;text-decoration:none;" target="_blank">Downloads<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a>&#160;&#124;&#160;<a href="http://stlab.adobe.com/asl_download_perforce.html" style="color:#274dac;text-decoration:none;" target="_blank">Source<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a>&#160;&#124;&#160;<a href="http://stlab.adobe.com/asl_toc.html" style="color:#274dac;text-decoration:none;" target="_blank">Documentation<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-Tamarin" style="color:#274dac;text-decoration:none;"></a>Tamarin</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">The Tamarin project, which is based on code contributed from Adobe, is designed to implement an open engine for ActionScript. Tamarin will be used by Mozilla within the next generation of SpiderMonkey, the core JavaScript engine embedded in Firefox®, Mozilla&#8217;s free Web browser, as well as within the ActionScript™ Virtual Machine within Adobe® Flash® Player. Developers interested in working on Tamarin code in the Mozilla CVS repository via the project page located at www.mozilla.org/projects/tamarin/. Contributions to the code will be managed by a governing body of developers from both Adobe and Mozilla.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://www.mozilla.org/projects/tamarin/" style="color:#274dac;text-decoration:none;" target="_blank">Home<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-TextLayoutFramework" style="color:#274dac;text-decoration:none;"></a>Text Layout Framework</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">The Text Layout Framework is an extensible ActionScript library, built on the new text engine in Adobe Flash Player 10 and Adobe AIR 1.5, which delivers advanced, easy-to-integrate typographic and text layout features for rich, sophisticated and innovative typography on the web. The framework is designed to be used with Adobe Flex or Adobe Flash Professional and is included in Flex 4, code named &#8220;Gumbo&#8221;. Developers can use or extend existing components, or use the framework to create their own text components.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://opensource.adobe.com/wiki/display/tlf/Text+Layout+Framework" style="color:#274dac;text-decoration:none;" title="Text Layout Framework">Home</a></b></div>
<h2 style="background-color:transparent;border-bottom-color:initial;border-bottom-style:none;border-bottom-width:initial;color:black;font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;line-height:normal;margin:0 0 5px;padding:0;"><a href="http://www.blogger.com/post-edit.g?blogID=2157740160912403437&#38;postID=6933323423930687405" name="Projects-Webkit" style="color:#274dac;text-decoration:none;"></a>Webkit</h2>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;">The WebKit library is used to render HTML and execute JavaScript in Adobe® AIR™. Adobe AIR allows web developers to deploy rich Internet applications on the desktop. Our plan is to contribute our changes back to the WebKit community in the near future. We are currently working on getting the code smoothly integrated into the WebKit source tree. We hope to make our contributions included in the WebKit open source project soon.</div>
<div style="color:black;font-family:Verdana, arial, sans-serif;font-size:11px;font-weight:normal;line-height:16px;margin:16px 0;padding:0;"><b><a href="http://opensource.adobe.com/wiki/display/webkit/Webkit" style="color:#274dac;text-decoration:none;" title="Webkit">Home</a>&#160;&#124;&#160;<a href="http://stlab.adobe.com/perforce/" style="color:#274dac;text-decoration:none;" target="_blank">Source<sup><img align="absmiddle" alt="" border="0" class="rendericon" height="9" src="http://opensource.adobe.com/images/icons/openwin_icon.gif" width="11" /></sup></a></b></div>
</td>
</tr>
</tbody>
</table>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Flex: Enterprise security implementation using Chimp, permission based filtering component]]></title>
<link>http://jaibeermalik.wordpress.com/2009/08/28/flex-enterprise-security-implementation-using-chimp-permission-based-filtering-component/</link>
<pubDate>Fri, 28 Aug 2009 03:22:54 +0000</pubDate>
<dc:creator>Jai</dc:creator>
<guid>http://jaibeermalik.wordpress.com/2009/08/28/flex-enterprise-security-implementation-using-chimp-permission-based-filtering-component/</guid>
<description><![CDATA[This post covers how you can implement enterprise security solution for flex applications. You can i]]></description>
<content:encoded><![CDATA[This post covers how you can implement enterprise security solution for flex applications. You can i]]></content:encoded>
</item>
<item>
<title><![CDATA[Flex: Choosing the right flex data transfer strategy and designing the application accordingly]]></title>
<link>http://jaibeermalik.wordpress.com/2009/08/27/flex-choosing-the-right-flex-data-transfer-strategy-and-designing-the-application-accordingly/</link>
<pubDate>Thu, 27 Aug 2009 03:59:03 +0000</pubDate>
<dc:creator>Jai</dc:creator>
<guid>http://jaibeermalik.wordpress.com/2009/08/27/flex-choosing-the-right-flex-data-transfer-strategy-and-designing-the-application-accordingly/</guid>
<description><![CDATA[This post covers the different strategies you can use for data transfer for the flex applications an]]></description>
<content:encoded><![CDATA[This post covers the different strategies you can use for data transfer for the flex applications an]]></content:encoded>
</item>
<item>
<title><![CDATA[Flex: Cairngorm View Notifications Strategies, Responders from Command to View]]></title>
<link>http://jaibeermalik.wordpress.com/2009/08/26/flex-cairngorm-view-notifications-strategies-responders-from-command-to-view/</link>
<pubDate>Wed, 26 Aug 2009 03:32:37 +0000</pubDate>
<dc:creator>Jai</dc:creator>
<guid>http://jaibeermalik.wordpress.com/2009/08/26/flex-cairngorm-view-notifications-strategies-responders-from-command-to-view/</guid>
<description><![CDATA[This post covers the different strategies you can use for view notifications during flex development]]></description>
<content:encoded><![CDATA[This post covers the different strategies you can use for view notifications during flex development]]></content:encoded>
</item>
<item>
<title><![CDATA[Flex: SpringActionscript (IOC) &amp; SpringActionscript Cairngorm Extension Sample Code Examples]]></title>
<link>http://jaibeermalik.wordpress.com/2009/08/24/flex-springactionscript-ioc-springactionscript-cairngorm-extension-sample-code-examples/</link>
<pubDate>Mon, 24 Aug 2009 03:46:44 +0000</pubDate>
<dc:creator>Jai</dc:creator>
<guid>http://jaibeermalik.wordpress.com/2009/08/24/flex-springactionscript-ioc-springactionscript-cairngorm-extension-sample-code-examples/</guid>
<description><![CDATA[This post covers some sample code examples of SpringActionscript Cairngorm Extension which you can u]]></description>
<content:encoded><![CDATA[This post covers some sample code examples of SpringActionscript Cairngorm Extension which you can u]]></content:encoded>
</item>
<item>
<title><![CDATA[Solution Found: Cairngorm + Maté + PureMVC]]></title>
<link>http://jwopitz.wordpress.com/2009/08/21/solution-found-cairngorm-mate-puremvc/</link>
<pubDate>Fri, 21 Aug 2009 07:05:02 +0000</pubDate>
<dc:creator>jwopitz</dc:creator>
<guid>http://jwopitz.wordpress.com/2009/08/21/solution-found-cairngorm-mate-puremvc/</guid>
<description><![CDATA[Notes the code samples and sample application utilized Flex 4 SDK I am using a patched version of Ma]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h3>Notes</h3>
<ul>
<li>the code samples and sample application utilized Flex 4 SDK</li>
<li>I am using a patched version of Mate to accommodate the Flex 4 SDK</li>
<li>I will post further updates to this post so stay tuned</li>
<li>the sample application is UGLY, so don&#8217;t expect anything great here folks.   Just enter some text in both text fields and hit save.  Tada.  It gets sent to two hidden labels.</li>
<li>you can download the sample application here &#8211; <a href="http://appcorelib.googlecode.com/files/MashupSampleApp.zip" target="_blank">link</a></li>
</ul>
<h3>Goals</h3>
<p>As of late I have been quite obsessive about finding a solution in which an application&#8217;s MVC constituents could be highly decoupled.  Some of the requirements in this solution are:</p>
<ul>
<li>view classes have no knowledge of UX logic (no dispatching of CairngormEvents)</li>
<li>view classes have no knowledge of Model objects nor {binding} to objects outside their local members</li>
<li>view classes are ignorant of any mediators wrapping them</li>
<li>command classes are ignorant of any mediators dispatching any UX logic events</li>
<li>command classes have no knowledge of Model objects outside of data payloads riding in on execution parameters</li>
<li>avoiding Singletons where possible</li>
</ul>
<p>Don&#8217;t you just love lists?  I do <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   This at first sound very restrictive especially to those of us who are long-time Cairngorm users.  It is quite easy to {bind} a view to a model class and be done with it.  This is great in mocking up prototypes quickly but is a shortcut that leads to plenty of headaches later on.  It&#8217;s quite easy to perform UX logic inside a Command class and then directly wire into a ModelLocator.  Again, this proves to be a pain if you are looking to do some sort of unit testing or want to decouple from your Model classes.</p>
<p>So let&#8217;s look at a few good things that each of these frameworks provide such that we can pick out the best and discard the rest.</p>
<h3>Cairngorm</h3>
<ul>
<li>Command pattern &#8211; being able to abstract out UX logic into commands is just great.  It adheres to the MVC paradigm so long as we are able to decouple the constituents.</li>
</ul>
<h3>PureMVC</h3>
<ul>
<li>Mediator pattern &#8211; this allows us to accomplish points 1 &#38; 2 above in the requirements.  It does mean that mediators are obviously knowledgeable about their views but its a one-way coupling issue.</li>
</ul>
<h3>Maté</h3>
<ul>
<li>Dependency Injection &#8211; the ultimate solution in decoupling all MVC actors.  Maté&#8217;s unique binding solution for DI is great in that we needn&#8217;t have to implement anything aside from the Injector mechanisms.  This affords us the ability to also have multiple DI maps for various scenarios, whether that be UI testing, unit testing or whatever.</li>
<li>EventMaps &#8211; In a general sense the EventMap is a great way to delegate the task of doing all the Controller logic that normally we have to do ourselves in Cairngorm or PureMVC.</li>
</ul>
<p>So there you have it: An outline of how I plan to use these 3 frameworks to build a highly decoupled app in which all our MVC actors are basically plug n&#8217; play classes.  Cool sounding eh?  Ok, now that that is out of the way I need to explain a few specifics with respect to the Command and Mediator pattern and how I use them.</p>
<h3>Command classes</h3>
<p>Using an out of the box Cairngorm ICommand is a bit restrictive in this solution so we are going to borrow the interface and change it up a bit.  Rather than this:</p>
<pre style="padding-left:30px;">execute (event:CairngormEvent):void</pre>
<p>we need something a bit more loose like so:</p>
<pre style="padding-left:30px;">execute (params:Object):void</pre>
<p>In this, we are simply accommodating some of the restrictive mechanisms found in how Maté handles the event system.  You could wire it in many ways but for the most direct route let&#8217;s stick with this.  The other thing we need to do is have our Command classes extend event dispatcher so that we can signal back to Maté that either the response logic or fault logic has commenced.  So here is a sample of how the IResponder portion works in these commands:</p>
<pre style="padding-left:30px;">result (data:Object):void
{
     //assuming your response from some service,
     //say an XML response that needs massaging to an AS3 Value Object
     var vo:SomeValueObject = data;

     var resultEvt:DynamicEvent = new DynamicEvent("result");
     resultEvt.data = vo;
     dispatchEvent(resultEvt);
}

fault (info:Object):void
 {
    var faultEvt:DynamicEvent = new DynamicEvent("fault");
    faultEvt.data = vo;
    dispatchEvent(faultEvt);
 }</pre>
<p>So this should be roughly inline with what most Cairngorm users do on a regular basis.</p>
<h3>Mediator classes</h3>
<p>It&#8217;s not like PureMVC invented the mediator pattern, but it certainly brought the valued pattern to light to many Flex developers.  There are no particular implementations from PureMVC or anywhere else, this is just my spin on it:</p>
<p>Views should implement a simple marker interface called <strong>IMediatorClient</strong>.  That&#8217;s it.  If you are using Flex 4 SDK, then remember currently code hinting will not work when typing &#8220;interface&#8221; in your MXML tag.  It will compile just fine.  At least it did for me.</p>
<p>Mediators happen to implement the following interface:</p>
<pre style="padding-left:30px;">public interface IMediator
{
   function get target ():IMediatorClient;
   function registerTarget (target:IMediatorClient):void;
}</pre>
<p>Now we need keep in mind a few Maté specific things here.  Because Maté happens to leverage the display list and some of the inner workings of the Flex system manager we have three choice in how Maté gets wind of our events.</p>
<ol>
<li>dispatch bubbling events from our IMediatorClient (because all views will be IEventDispatchers by their very nature)</li>
<li>wire in a specific Dispatcher from Maté (this means bringing in Maté specific code into our pristine code. no&#8230;.)</li>
<li>find some other solution that probably entails a central event dispatcher that then wires into an EventMap</li>
</ol>
<p>Obviously solution #1 is the most unobtrusive and easiest for OCD folks (like me) to deal with.  Let&#8217;s stick with that for now.   Besides, a bubbles event is not such a bad thing is it?  Just make sure that you are using some unique event types otherwise you might trigger unexpected handlers elsewhere in your application.</p>
<p>So let&#8217;s see how we wire these puppies up into Maté.</p>
<h3>Maté wirings</h3>
<p>First up is the what I am calling a Mediator Map.  Simply put it is a way to wrap your IMediatorClient views into IMediators without specifically having the wiring code in anything but Maté.  Note that I am doing this in Flex 4 SDK and thus requires the use of the declarations tag.</p>
<pre style="padding-left:30px;">&#60;?xml version="1.0" encoding="utf-8"?&#62;
&#60;mate:EventMap
xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo" xmlns:mate="http://mate.asfusion.com/"&#62;

&#60;fx:Script&#62;
&#60;![CDATA[

import app.view.*;
import app.view.mediators.*;

]]&#62;
&#60;/fx:Script&#62;
&#60;fx:Declarations&#62;
    &#60;mate:Injectors target="{SampleIMediatorClient}" debug="true"&#62;
       &#60;mate:MethodInvoker generator="{SampleIMediator}" method="registerTarget"
          arguments {event.injectorTarget}"/&#62;
     &#60;/mate:Injectors&#62;
&#60;/fx:Declarations&#62;
&#60;/mate:EventMap&#62;</pre>
<p>So this MediatorMap would be placed on your Application level class.  Simple enough right?  The cool thing is that this autowires a view to a mediator when the view gets attached to the display list.  And because Maté is in charge of caching the instances it creates, you will soon see that the mediator can be referenced in the DI map below.</p>
<h3>Dependency Injection map</h3>
<p>So this next map is where we are basically injecting model classes into mediators which in turn affect changes on the views through whatever logic you so desire.  I like using the IDataRenderer interface alot as it is easy to remember.  Check it out:</p>
<pre style="padding-left:30px;">&#60;?xml version="1.0" encoding="utf-8"?&#62;
&#60;mate:EventMap
 xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" xmlns:mate="http://mate.asfusion.com/"&#62;

 &#60;fx:Script&#62;
 &#60;![CDATA[

 import app.model.*;    
 import app.view.*;
 import app.view.mediators.*;

 ]]&#62;
 &#60;/fx:Script&#62;

 &#60;fx:Declarations&#62;

 &#60;mate:Injectors target="{CurrentUserViewMediator}"&#62;
 &#60;mate:PropertyInjector targetKey="data" source="{UsersManager}" sourceKey="currentUser"/&#62;
 &#60;/mate:Injectors&#62;

 &#60;/fx:Declarations&#62;

&#60;/mate:EventMap&#62;</pre>
<p>So all this does is say, when we make a change to the currentUser on the UsersManager class, we want to let the CurrentUserViewMediator know about the change.  Maté handles the binding mechanisms internally.  Lastly I need to show you how the command classes are wired into the EventMap.</p>
<h3>EventHandlerMap &#38; Commands</h3>
<p>I had written an earlier post on this but I will post it here too.  So this is kinda the tricky part about Cairngorm and Mate playing well together.  Remember we had to make our Commands dispatch events?  Well here is why.  The AsyncCommandInvoker class in Mate expects to hook into events of specific types.  Since our commands implement IResponder, why not keep it simple and just have it expect the same from the event types.</p>
<pre style="padding-left:30px;">&#60;?xml version="1.0" encoding="utf-8"?&#62;
&#60;mate:EventMap
 xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" xmlns:mate="http://mate.asfusion.com/"&#62;

 &#60;fx:Script&#62;
 &#60;![CDATA[

 import app.controller.commands.*;
 import app.model.*;
 import app.view.*;
 import app.view.mediators.*;

 import com.adobe.cairngorm.control.*;

 import mx.events.*;

 ]]&#62;
 &#60;/fx:Script&#62;

 &#60;fx:Declarations&#62;

 &#60;mate:EventHandlers type="saveUser"&#62;
    &#60;mate:AsyncCommandInvoker generator="{SaveUserCommand}" successType="result"&#62;
      &#60;mate:successHandlers&#62;
        &#60;mate:PropertySetter generator="{UsersManager}" targetKey="currentUser"
           source="{scope.currentEvent.data}"/&#62;
      &#60;/mate:successHandlers&#62;
    &#60;/mate:AsyncCommandInvoker&#62;
 &#60;/mate:EventHandlers&#62;

 &#60;/fx:Declarations&#62;

&#60;/mate:EventMap&#62;</pre>
<p>Notice the successType in the AsyncCommandInvoker.  This is that event we dispatched from the result method on the command.  Similarly there is a faultType which we would dispatch &#8220;fault&#8221; there.  So one question you might have is, &#8220;where is the saveUser event type getting dispatched?&#8221;.  So in this example, I had my mediator wrapping the EditUserView tie into a save button click event.  Then it dispatched an event from the view that bubbled up with the type saveUser.</p>
<h3>Conclusion</h3>
<p>Well there you have it, a quick mash up of how to combine the best elements from the various MVC frameworks along with some cool IoC/DI wiring from Maté.  Is it perfect?  Far from it.  It&#8217;s funny how these things come in spurts.  I hadn&#8217;t made any progress for a long time, reading up on things like Parsley, Swiz, Spring Actionscript and RobotLegs only to find that I was dissatisfied.  To tell the truth I didn&#8217;t even give these other framework a chance.  I was lazy and didn&#8217;t feel like learning something new when I knew that I could do it pretty much with Mate, Cairngorm and PureMVC.</p>
<p>I am psyched to try this in a bigger application at some point.  I do have a few reservations regarding Mate, specifically with respect to cached instances and all the behind-the-scenes {binding} that takes place.  How does this affect performance and memory?  The other big issues is that debugging this is a pain.  I haven&#8217;t figured out all the intricacies of Mate and if a problem occurs outside of your main actors, debugging gets difficult.  Lastly, the idea of Singletons have been removed from your MVC actors but isn&#8217;t this then just passed on to Mate in some sense?  Well not to fret but just some things to think about.</p>
<p>Let me know your thoughts and ideas.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Tips&amp;Tricks: CairngormEventDispatcher dispatchEvent versus dispatch method]]></title>
<link>http://jaibeermalik.wordpress.com/2009/08/21/tipstricks-cairngormeventdispatcher-dispatchevent-versus-dispatch-method/</link>
<pubDate>Fri, 21 Aug 2009 03:39:35 +0000</pubDate>
<dc:creator>Jai</dc:creator>
<guid>http://jaibeermalik.wordpress.com/2009/08/21/tipstricks-cairngormeventdispatcher-dispatchevent-versus-dispatch-method/</guid>
<description><![CDATA[With Cairngorm versions prior up to and including 2.1, the sample code we usually find uses, var log]]></description>
<content:encoded><![CDATA[With Cairngorm versions prior up to and including 2.1, the sample code we usually find uses, var log]]></content:encoded>
</item>
<item>
<title><![CDATA[Flex: Cairngorm (MVC), SpringActionscript (IOC) and other Cairngorm Extensions]]></title>
<link>http://jaibeermalik.wordpress.com/2009/08/19/flex-cairngorm-springactionscript-and-different-cairngorm-extensions/</link>
<pubDate>Wed, 19 Aug 2009 04:31:25 +0000</pubDate>
<dc:creator>Jai</dc:creator>
<guid>http://jaibeermalik.wordpress.com/2009/08/19/flex-cairngorm-springactionscript-and-different-cairngorm-extensions/</guid>
<description><![CDATA[In this post I will cover brief about the flex Cairngorm framework , integration with SpringActionsc]]></description>
<content:encoded><![CDATA[In this post I will cover brief about the flex Cairngorm framework , integration with SpringActionsc]]></content:encoded>
</item>
<item>
<title><![CDATA[Tips&amp;Tricks: Include SpringActionscript application context file in swf file]]></title>
<link>http://jaibeermalik.wordpress.com/2009/08/18/tipstricks-include-springactionscript-application-context-file-in-swf-file/</link>
<pubDate>Tue, 18 Aug 2009 05:16:33 +0000</pubDate>
<dc:creator>Jai</dc:creator>
<guid>http://jaibeermalik.wordpress.com/2009/08/18/tipstricks-include-springactionscript-application-context-file-in-swf-file/</guid>
<description><![CDATA[There are multiple ways to include the application context file in swf file. [Embed(source=&quot;app]]></description>
<content:encoded><![CDATA[There are multiple ways to include the application context file in swf file. [Embed(source=&quot;app]]></content:encoded>
</item>
<item>
<title><![CDATA[Tips&amp;Tricks: Flex expand AdvancedDataGrid tree column on load]]></title>
<link>http://jaibeermalik.wordpress.com/2009/08/18/tipstricks-flex-expand-advanceddatagrid-tree-column-on-load/</link>
<pubDate>Tue, 18 Aug 2009 05:05:59 +0000</pubDate>
<dc:creator>Jai</dc:creator>
<guid>http://jaibeermalik.wordpress.com/2009/08/18/tipstricks-flex-expand-advanceddatagrid-tree-column-on-load/</guid>
<description><![CDATA[Use displayExpandItems=&#8221;true&#8221; to expand all the elements of the tree component items on ]]></description>
<content:encoded><![CDATA[Use displayExpandItems=&#8221;true&#8221; to expand all the elements of the tree component items on ]]></content:encoded>
</item>
<item>
<title><![CDATA[Tips&amp;Tricks: Flex Cairngorm Sequence Command, sequencing events ]]></title>
<link>http://jaibeermalik.wordpress.com/2009/08/18/tipstricks-flex-cairngorm-sequence-command-sequencing-events/</link>
<pubDate>Tue, 18 Aug 2009 04:55:59 +0000</pubDate>
<dc:creator>Jai</dc:creator>
<guid>http://jaibeermalik.wordpress.com/2009/08/18/tipstricks-flex-cairngorm-sequence-command-sequencing-events/</guid>
<description><![CDATA[Lets say you want to sequence two events and the second one is triggered based on some criteria. Fir]]></description>
<content:encoded><![CDATA[Lets say you want to sequence two events and the second one is triggered based on some criteria. Fir]]></content:encoded>
</item>
<item>
<title><![CDATA[Flex then, now &amp; tomorrow – From a java developer's perspective]]></title>
<link>http://jaibeermalik.wordpress.com/2009/08/18/flex-then-now-tomorrow-%e2%80%93-from-a-java-developers-perspective/</link>
<pubDate>Tue, 18 Aug 2009 04:28:44 +0000</pubDate>
<dc:creator>Jai</dc:creator>
<guid>http://jaibeermalik.wordpress.com/2009/08/18/flex-then-now-tomorrow-%e2%80%93-from-a-java-developers-perspective/</guid>
<description><![CDATA[This is the first post in series of posts which I am planning to cover regarding Adobe Flex, Cairngo]]></description>
<content:encoded><![CDATA[This is the first post in series of posts which I am planning to cover regarding Adobe Flex, Cairngo]]></content:encoded>
</item>
<item>
<title><![CDATA[Learn Cairngrom framework]]></title>
<link>http://guptamukesh.wordpress.com/2009/08/17/learn-cairngrom-framework/</link>
<pubDate>Mon, 17 Aug 2009 11:25:08 +0000</pubDate>
<dc:creator>mukeshinpossibility</dc:creator>
<guid>http://guptamukesh.wordpress.com/2009/08/17/learn-cairngrom-framework/</guid>
<description><![CDATA[Learn and understand  cairngorm framework  in very simple manner by following tutorials . 1)Part-1 2]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Learn and understand  cairngorm framework  in very simple manner by following tutorials .</p>
<p>1)<a href="http://www.davidtucker.net/2007/10/07/getting-started-with-cairngorm-%E2%80%93-part-1/" target="_self">Part-1</a></p>
<p>2)<a href="http://www.davidtucker.net/2007/10/18/cairngorm-part-2/" target="_self">Part-2</a></p>
<p>The above aricles are posted by <a href="http://maheshfx.wordpress.com/category/cairngorm/" target="_self">DavidTucker</a>. I found them really much helpful .  If want to know more you can checkout the link on <a href="http://maheshfx.wordpress.com/category/cairngorm/" target="_self">DavidTucker</a> blog</p>
<p>If you know any thing on Cairngorm, which you want to share or any other link related to Cairngorm or any other Flex fremework, then welcome to post the comment.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Wanted: a better MVC paradigm with dependency injection (IoC)]]></title>
<link>http://jwopitz.wordpress.com/2009/08/14/wanted-a-better-mvc-paradigm-with-dependency-injection-ioc/</link>
<pubDate>Fri, 14 Aug 2009 18:06:57 +0000</pubDate>
<dc:creator>jwopitz</dc:creator>
<guid>http://jwopitz.wordpress.com/2009/08/14/wanted-a-better-mvc-paradigm-with-dependency-injection-ioc/</guid>
<description><![CDATA[First off, note the word &#8220;paradigm&#8221; rather than the more commonly used word &#8220;frame]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>First off, note the word &#8220;paradigm&#8221; rather than the more commonly used word &#8220;framework&#8221;.  As a self proclaimed pragmatist, the word paradigm seems more fitting in a world where no one shoe fits all.  Aren&#8217;t you tired of hearing the old debate of &#8220;which MVC framework is best&#8221;?  I am tired of the whole Cairngorm, PureMVC, Maté, Swiz, blah blah blah&#8230;.  The dealo is that they all offer some strong solutions for common problems.  Certainly having NO MVC infrastructure in your application is a poor choice.  I have indeed been on a quest to find some solution in which I could utilize all the best from each library while leaving behind the bad.</p>
<p>Now I should preface this by saying I have no formal training in Computer Science.  I have been on a quest for a good dependency injection solution for a long time not knowing that was what it was called.  Besides, what&#8217;s in a name?  Does dependency injection or inversion of control really convey to the layperson the idea of wiring up an application?  I think I am fairly smart and I didn&#8217;t understand it even after reading Wikipedia on the subject.  To finish up here, let me compose a written goal(s) of what this post is all about and then I will dive into each point where applicable.  Some of these may be common knowledge but are still worth pointing out (pardon the &#8220;no-duh&#8221; points):</p>
<ul>
<li>hereinafter the word &#8220;framework&#8221; will refer to existing MVC constructs such as Cairngorm, PureMVC, Maté, etc.</li>
<li>hereinafter the word &#8220;wiring&#8221; will refer to either an existing or proposed IoC/DI construct such as Spring Actionscript (formerly known as Prana), Maté&#8217;s Injector logic, etc.</li>
<li>User eXperience is hereinafter referred to as UX.  Any and all executable logic, whether triggered by user interaction or through subsequent data manipulation is considered UX.</li>
<li>application MVC constituents should be highly decoupled in the following manner:
<ul>
<li>view classes will be ignorant of any UX logic associated with their interactivity.  This will be accomplished either by a wiring mechanism similar to Maté&#8217;s EventHandlers in its EventMaps or PureMVC&#8217;s Mediators.</li>
<li>controller/command classes should function independently of one another such that particular UXs can be assembled via the wiring in a building block fashion.</li>
<li>data/model classes are to avoid ModelLocator implementations.  This will entail less {binding} and more verbose wiring logic.  This will accommodate modular application structures where Singletons are problematic.</li>
</ul>
</li>
<li>Leveraging the event-driven nature of the Flash Player is ideal.</li>
<li>A solution that is Flex-agnostic is ideal.</li>
<li>A solution that can either take an XML or MXML map is ideal.  Having the option to &#8220;compile&#8221; the wiring is nice in that it maps much like the DI of Maté.</li>
</ul>
<p>So there are a few goals I have in mind.  Obviously existing frameworks and wiring solutions have tackled some of these but I feel that they are mostly intrusive.  People use the term &#8220;boilerplate&#8221; code in reference to Cairngorm but I&#8217;d rather say that Cairngorm give you enough rope to hang yourself with.  People claim that PureMVC&#8217;s mediator implementation makes for more classes but I&#8217;d rather say that it is simply the price you pay for decoupling your views from your UX logic.  People say Maté is alot of smoke and mirrors but I&#8217;d rather say the idea of IoC is new to Flex developers that we haven&#8217;t readily accepted the fact that it works.</p>
<p>If you would like to see some of the work I am doing on this, you can check out some of the Mediator/Maté hybrid mashup stuff I am working on here &#8211; http://subversion.assembla.com/svn/as3mediatorlib/trunk.</p>
<p>Please sound off and if you are interested in working on a solution please contact me.  Thanks.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[UFC 100/101, large numbers of beers]]></title>
<link>http://apintandafight.wordpress.com/2009/08/13/ufc-100101-large-numbers-of-beers/</link>
<pubDate>Thu, 13 Aug 2009 19:49:56 +0000</pubDate>
<dc:creator>jaytee46</dc:creator>
<guid>http://apintandafight.wordpress.com/2009/08/13/ufc-100101-large-numbers-of-beers/</guid>
<description><![CDATA[UFC 100 quickly, because it was a longer time ago &#8211; disappointed imo. Mainly because it was fa]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>UFC 100 quickly, because it was a longer time ago &#8211; disappointed imo. Mainly because it was fairly predictable in that Lesnar simply repeatedly punched Mir and showed that he&#8217;s not going to lose to a cheap submission again, GSP vs. Alves was more or less one way traffic as expected, Henderson &#8211; Bisping was briefly entertaining, but we really don&#8217;t need to see Hendo lose to Anderson Silva again in the future, Fitch&#8217;s fight was automatic, and only Akiyama/Belcher looked to be close (and imo Belcher won the fight). We should all take a minute to laugh at Stephan Bonnar for losing to someone old enough to be my grandfather, but the card just seemed to be a case of failing to live up to very high expectations.</p>
<p>Then we had the whole Fedor to UFC cocktease bullshit, the deal that was reportedly offered by Zuffa was insane, and M-1 are daft to turn it down, and equally crazy if they think that they can actually build up a decent promotion based around Fedor and, er, er, help please?</p>
<p>UFC 101 &#8211; Penn/Florian was pretty sucky, KenFlo never really threatened to do anything, Penn didn&#8217;t gas, did enough to win all of the first three rounds and finished nicely in the fourth. Silva/Griffin was awesome, mainly because Silva just owned from the minute he stepped into the arena. Sadollah/Hendricks was finished way too early, and as a result we managed to see Aaron Riley be simply too big for Shane Nelson, who needs to get himself to the WEC ASAP. I thought Kendall Grove did enough to win the second round against Ricardo Almeida, but still lost the fight, and if Pellegrino/Neer had been aborted after 30 seconds I don&#8217;t think anyone would have cared. An undercard bout between some Australian and some other guy was entertaining enough I guess.</p>
<p>UFC has a few problems in creating meaningful competitive fights right now. Lesnar is well above anyone else at heavyweight, and apart from Big Nog if he can bounce back against Couture in a few weeks, or Carwin/Velasquez down the road, there&#8217;s nobody that can really challenge. GSP and Anderson Silva are streets ahead of anyone at 170 and 185 respectively, and Penn looks to be too good for anyone at 155 as well. There could be some decent action at 205, but I don&#8217;t know who can obviously beat Machida right now. At least there there is a lot of competition between good fighters who could legitimately have a shot. I don&#8217;t know what they can do about it, other than have Silva move to 205 permanently (which isn&#8217;t going to happen, and he wouldn&#8217;t fight Lyoto anyway), and we don&#8217;t need to see GSP fight Silva either. If they can&#8217;t get Fedor despite throwing everything at him, I don&#8217;t see what&#8217;ll happen. Still, I&#8217;m excited about 102, the main event does nothing for me, but Jardine/Thiago Silva should be fun, I do like Jardine&#8217;s fights even though he somewhat sucks when fighting top-5 calibre at the weight, Maia/Marquardt should be awesome, and hopefully Brandon Vera will get owned again.</p>
<p>Quite a lot of beers to mention, not done any festivals of late, there&#8217;s some coming up in October, including Sheffield and one at my local. Without further ado:</p>
<p>177 &#8211; Three B&#8217;s Bobbins Bitter (3.8%) &#8211; 6.5, full flavoured, slightly dry and fruity</p>
<p>178 &#8211; TSA Ben Nevis (4.0%) &#8211; 7, full, slightly fruity and malty</p>
<p>179 &#8211; Holden&#8217;s Lambswool (4.5%) &#8211; 6.5, not bad, has an odd slightly malty taste</p>
<p>180 &#8211; Cottage Box Tunnel (4.3%) &#8211; 6, slightly malty, unchallenging bland ale</p>
<p>181 &#8211; Cottage Metropolitan (4.7%) &#8211; 7, well balanced, touches of fruit and malt</p>
<p>182 &#8211; Boggart Bog Eyed (4.0%) &#8211; 6.5, bit dry and hoppy, better than other beers they make.</p>
<p>183 &#8211; Phoenix St George&#8217;s Flag (4.3%) &#8211; 7, moderately dry, hoppy and refreshing</p>
<p>184 &#8211; Betwixt Skyline (3.5%) &#8211; 5, mundane, dull and heavy</p>
<p>185 &#8211; Derventio Et Tu Brutus (4.5%) &#8211; 6, unimaginative and slightly heavy</p>
<p>186 &#8211; Three Rivers Old Disreputable (5.2%) &#8211; 7.5, dark, sweet and liquoricey, almost like a dark mild</p>
<p>187 &#8211; Rudgate Brandt (3.9%) &#8211; 6.5, decent if a touch too malty</p>
<p>188 &#8211; Wentworth Small Copper (4.1%) &#8211; 6.5, tastes full to start, but weak aftertaste, ok, rich enough</p>
<p>189 &#8211; Phoenix Hopsack (3.8%) &#8211; 7.5, very drinkable, dry hoppy ale</p>
<p>190 &#8211; Slaters Howzat (3.8%) &#8211; 6.5, dark, malty and earthy, a bit better than similar beers</p>
<p>191 &#8211; Slaters Top Totty (4.0%) &#8211; 8, light ale, well balanced and drinkable</p>
<p>192 &#8211; Ossett Pale Ale (3.6%) &#8211; 7.5, pleasant light and hoppy session ale</p>
<p>193 &#8211; Cairngorm Nessie&#8217;s Monster Mash (4.4%) &#8211; 7, decent darker ale, bit malty and treacley, overrated</p>
<p>194 &#8211; Acorn Ginger Nuts (4.2%) &#8211; 7, decent lighter ale, ginger noticable but not dominant</p>
<p>195 &#8211; Lancaster Amber (3.7%) &#8211; 6, slightly dark amber ale, ok but not spectacular</p>
<p>196 &#8211; Northumberland Northumbria Ale (4.5%) &#8211; 6.5, slightly tangy golden ale on the hoppy side</p>
<p>197 &#8211; Springhead Liberty (3.8%) &#8211; 6.5, standard pale ale</p>
<p>198 &#8211; The Brew Co Dev Cat Brewers Gold (3.8%) &#8211; 6.5, light hoppy session ale with dry aftertaste</p>
<p>199 &#8211; Victoria Bitter (4.8%) &#8211; 7, an almost lager-bitter hybrid that&#8217;s on the malty side</p>
<p>200 &#8211; Thornbridge Lord Marples (4.0%) &#8211; 6, rather malty and a bit heavy</p>
<p>201 &#8211; Rudgate Flaxen Dane (4.2%) &#8211; 7.5, mildly hoppy, slight dry finish</p>
<p>202 &#8211; Northumberland Jolly Rogers (4.0%) &#8211; 5, darkish ale with awful aftertaste</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Cairngorm framework for JavaFx]]></title>
<link>http://riaaspirant.wordpress.com/2009/07/24/cairngorm-framework-for-javafx/</link>
<pubDate>Fri, 24 Jul 2009 15:00:21 +0000</pubDate>
<dc:creator>walkwithsabari</dc:creator>
<guid>http://riaaspirant.wordpress.com/2009/07/24/cairngorm-framework-for-javafx/</guid>
<description><![CDATA[Hi JavaFx fans, This is the interesting and good news for us. We have Cairngorm framework for JavaFx]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p align="justify"><span style="color:#333333;">Hi JavaFx fans,</span></p>
<p><span style="color:#333333;">This is the interesting and good news for us. We have Cairngorm framework for JavaFx too, it is exactly what we have it for Flex development. It is named by <em><strong>Cairngorm-FX</strong></em>. Surely it will help us to increase the productivity and time-saving. The guy from Cjtech.co.uk, developed this framework. It is available for download under MIT License.</span></p>
<p><span style="color:#333333;">Read the complete details from <a href="http://blog.cjtech.co.uk/index.php/2009/06/18/cairngorm-fx/"><em><strong>cjtech.co.uk</strong></em></a>.<br />
</span></p>
<p align="justify"><span style="color:#333333;">Go to <a href="http://code.google.com/p/cairngorm-fx/"><em><strong>Download page</strong></em></a> . </span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Cairngorm 3]]></title>
<link>http://flexnflex.wordpress.com/2009/07/17/cairngorm-3/</link>
<pubDate>Fri, 17 Jul 2009 05:46:29 +0000</pubDate>
<dc:creator>mjcprasad2000</dc:creator>
<guid>http://flexnflex.wordpress.com/2009/07/17/cairngorm-3/</guid>
<description><![CDATA[Prerequisities Before you go on, it is vital that you get familiar with Adobe Cairngorm framework it]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div>
<div>Prerequisities</div>
<div>
<p>Before you go on, it is vital that you get familiar with Adobe Cairngorm framework 	itself. That is a simple yet powerful Model-View-Controller based microarchitecture 	and a set of design patterns. All is to make your web application development process 	far easier and more organised.</p>
<p>Should you want to read further on Adobe Cairngorm for Flex:</p>
<ul>
<li><a href="http://www.adobe.com/go/cairngorm/" target="_blank">Cairngorm Microarchitecture for Adobe Flex</a></li>
<li><a href="http://www.cairngormdocs.org/" target="_blank">Cairngorm community documentation (cairngorm docs)</a></li>
<li><a href="http://www.adobe.com/devnet/flex/articles/cairngorm_pt1.html" target="_blank">Cairngorm six-part article</a></li>
</ul>
<p>Should you want to read further on Adobe Flex:</p>
<ul>
<li><a href="http://www.adobe.com/devnet/flex/" target="_blank">Adobe &#8211; Flex Developer Center</a></li>
</ul>
</div>
<div>Intruduction</div>
<div>
<p><ins>Separation of concerns</ins> is a very important issue in software development. 	As a project manager and a designer, it allows you to split the work between 	the programmers and divide the whole process in major cycles. One of many, you create a model 	which represents the business logic that application is to implement. Based on that one may 	develop a set of activities (commands) that modifies the model (eg. adds a new customer or 	authorizes an user). <ins>The logic layer has nothing to do with how the application 	communicates with the user</ins>. Moreover, those areas are usually covered by different 	software teams.</p>
<p>Well designed user interface should let not only initiate certain processes but also 	track the progress and respond to the result of their execution. For example, you may want 	to switch the screen after a succesful login or pop a window up on error. Most unfortunately, 	there is no good way to acomplish that in Cairngorm. All the walk-arounds I have seen required 	the logic layer (model and commands) to rely significantly on the view layer. This resulted in 	a constant need to modify the logic simultaniously with the development of the view components.</p>
<p>The current (and poor) solutions involve:</p>
<ul>
<li> Passing the references to the view components (as a Cairngorm event property) to the logic 		layer in hope that the needed changes will be made there.</li>
<li> Use of ViewHelper / ViewLocator in the logic layer.</li>
<li> Cluttering model with some view devoted properties (like viewingState).</li>
<li> Making model dispatch special events to inform the view about certain results of the 		commands execution. Leads to creation of tons of classes and code difficult to manage.</li>
</ul>
<p>If the mentioned problems sound familiar, you shall find Cairngorm 3 higly useful.</p></div>
<div>Tell me when you are done</div>
<div>
<p>The most basic feature lets you pass a reference to the function which is to be called after the execution of the backing command is completed. You may provide an optional parameter to the well known call, eg:</p>
<p><code> new UserEvent(UserEvent.LOGIN, username).dispatch(userLoginComplete); </code></p>
<p>In the complete handler you may eg. switch to the main screen.</p>
<p><strong>Example (Counter.mxml):</strong></p>
<ul>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/Counter.html" target="_blank">Application</a></li>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/srcview/index.html">Source code</a></li>
</ul>
<p>Smart readers have probably noticed that the complete handlers take one argument. The data carries detailed information about the executed command. We will get to this later on.</p></div>
<div>Glance at CairngormResponder (new class)</div>
<div>
<p>It often happens that command does not complete instantly. This is the case eg. when you use Remote Procedure Calls &#8211; calling a Web Service requires waiting for response. For this kind of commands you should make them extend the CairngormResponder base class.</p>
<p>Object of CairngormResponder is expected to dispach COMPLETE event after it finishes.<br />
However, everything you have to do is simply to call:</p>
<p><code> super.result(null); </code></p>
<p>after you are done. As the parameter you may pass an execution result (see the next section).</p>
<p><strong>Example (Delayed.mxml):</strong></p>
<ul>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/Delayed.html" target="_blank">Application</a></li>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/srcview/index.html">Source code</a></li>
</ul>
</div>
<div>Handling result / fault of command execution</div>
<div>
<p>Normal results and errors should be treated differently. Each command assummes that certain preconditions are fulfilled (eg. username is not empty). You may respond to the wrong exectutions by throwing a descriptive error in the main <code>execute()</code> method:</p>
<p><code> throw new Error("Username is empty"); </code></p>
<p>The error is then catched by the Controller and passed back to the command fault handling function.  This works regerdless whether your command is CairngormResponder or not (one shall be instantiated anyway for the complete handler argument). Alternatively you can call CairngormResponder fault method directly:<code> super.fault(error); </code></p>
<p>Note that this is the only solution if you want to react to the error information returned by the server<br />
(outside the <code>execute()</code> method).</p>
<p>The complete handler may behave basing on the completion status:</p>
<p><code>protected function completeHandler(responder:ICairngormResponder) {</code><br />
<code>if (responder.succeded) {</code><br />
<code>// do sth with responder.resultData</code><br />
<code>} else {</code><br />
<code>// do sth with responder.faultInfo</code><br />
<code>}</code><br />
<code>}</code></p>
<p>For the full list of ICairngormResponder interface properties please check the documentation at the end.</p>
<p><strong>Example (Fault.mxml):</strong></p>
<ul>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/Fault.html" target="_blank">Application</a></li>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/srcview/index.html">Source code</a></li>
</ul>
</div>
<div>Centralisation of handlers</div>
<div>
<p>It would be unhandy if you had to provide the same function in <code>dispatch()</code> call for every place in code where you dispatch a certain event. That is why the new controller lets you listen for completion of any or given command execution. Hence, you can put all the error-respoding code in one place. What is more, the controller will inform you if the command execution did not complete instantly so you can eg. change the cursor to the hourglass.</p>
<p>However, you can still use the dispatch-specific handlers to take the view specific actions eg. close a popup window.</p>
<p><strong>Example (Global.mxml):</strong></p>
<ul>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/Global.html" target="_blank">Application</a></li>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/srcview/index.html">Source code</a></li>
</ul>
</div>
<div>Track of progress and ability to cancel execution</div>
<div>
<p>The noticable number of processes provide progress information. Amongst others, those are downloaders / uploaders / data renderers. It would be great to give the user clue of how much time currently executed commands may consume. If your command does provide such information, you may find it useful to make it extend the CairngormProgressResponder base class. Then you simply dispatch appropriate PROGRESS events.</p>
<p>Ability to cancel the execution is even more important. Should you want your command to be cancellable, it is enough to implement the ICairngormCancelResponder interface, so that you can code the routine details.</p>
<p><strong>Example (Progress.mxml):</strong></p>
<ul>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/Progress.html" target="_blank">Application</a></li>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/srcview/index.html">Source code</a></li>
</ul>
</div>
<div>Delegate base class</div>
<div>
<p>The extension to Cairngorm comes together with unification of the inter-layer communication:</p>
<p style="text-align:center;"><img src="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/assets/Layers.gif" border="0" alt="" width="407" height="314" /></p>
<p>Delegate base class is simply a kind of responder which you can instantiate on command&#8217;s behalf.<br />
For example in <code>execute()</code> method you write:</p>
<p><code>delegate = new AuthorizationDelegate(this);</code><br />
<code>delegate.LoginUser(username);</code></p>
<p>Storing a reference to the delegate in CairngormResponder property prevents the garbage collector from getting rid of unreferenced service before it manages to return a result. The issue holds for the asynchronus commands which <ins>should be referenced somehow during the execution time</ins>. You already know how easily it can be done with ASYNCHRONOUS controller&#8217;s event handler.</div>
<div>Library resources</div>
<div>
<p>The extension is fully backward-compatible with the original Cairngorm. So you can probably switch the library files with no consequences (but on your own risk <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ).</p>
<p>The resources below are based on the Cairngorm v2.2.1 code obtained from <a href="http://opensource.adobe.com/svn/opensource/cairngorm" target="_blank">Cairngorm SVN</a> repository at Adobe OpenSource.</p>
<ul>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/assets/bin/Cairngorm.swc">Cairngorm.swc compiled library</a></li>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/assets/bin/doc/index.html" target="_blank"> Cairngorm 3 Action Script generated documenation </a></li>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/assets/dist/Cairngorm3-bin.zip">Cairngorm3-bin.zip binary package</a></li>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/assets/dist/Cairngorm3-doc.zip">Cairngorm3-doc.zip documentation package</a></li>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/assets/dist/Cairngorm3-src.zip">Cairngorm3-src.zip source code package</a></li>
</ul>
<p>I also provide a patch file (for the latest &#8211; 2.2.1 beta) version of Cairngorm:</p>
<ul>
<li><a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/assets/dist/Cairngorm3.diff">Cairngorm3.diff patch file</a></li>
</ul>
<p>Those are the spots where I have made changes. Asterix stands for modification and plus for addition.</p>
<ul>
<li>+ business/Delegate.as</li>
<li>* control/CairngormEvent.as (dispatch, completeHandlerFunction)</li>
<li>* control/FrontController.as (executeCommand, responderComplete, events)</li>
<li>+ control/FrontControllerEvent.as</li>
<li>+ responder/CairngormProgressResponder.as</li>
<li>+ responder/CairngormResponder.as</li>
<li>+ responder/ICairngormCancelResponder.as</li>
<li>+ responder/ICairngormProgressResponder.as</li>
<li>+ responder/ICairngormResponder.as</li>
</ul>
<p>You may review the changes by the means of <a href="http://students.mimuw.edu.pl/%7Emhagmajer/cairngorm3/srcview/index.html">the source code browser</a>.</div>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Cairngorm]]></title>
<link>http://gunjank.wordpress.com/2009/07/10/cairngorm/</link>
<pubDate>Fri, 10 Jul 2009 20:08:38 +0000</pubDate>
<dc:creator>gunjank</dc:creator>
<guid>http://gunjank.wordpress.com/2009/07/10/cairngorm/</guid>
<description><![CDATA[Some Useful links for Cairngorm Cairngorm overview and downlolad http://opensource.adobe.com/wiki/di]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:center;"><strong>Some Useful links for Cairngorm</strong></p>
<p><strong>Cairngorm overview and downlolad</strong></p>
<p><a href="http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm" target="_blank"> http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm</a></p>
<p><strong>Cairngorm forums </strong></p>
<p><a href="http://forums.adobe.com/community/opensource/cairngorm" target="_blank">http://forums.adobe.com/community/opensource/cairngorm</a></p>
<p><strong>About Cairngorm</strong></p>
<p><a href="http://opensource.adobe.com/wiki/display/cairngorm/About" target="_blank">http://opensource.adobe.com/wiki/display/cairngorm/About</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[MATE: Responding to events]]></title>
<link>http://blog.scottmebberson.com/2009/07/09/mate-responding-to-events/</link>
<pubDate>Thu, 09 Jul 2009 01:42:40 +0000</pubDate>
<dc:creator>Scott Mebberson</dc:creator>
<guid>http://blog.scottmebberson.com/2009/07/09/mate-responding-to-events/</guid>
<description><![CDATA[Recently, I embarked on a personal project to learn about the Mate Framework, which I&#8217;ve start]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Recently, I embarked on a <a href="http://www.focusboosterapp.com/" target="_blank">personal project</a> to learn about the <a href="http://mate.asfusion.com/" target="_blank">Mate Framework</a>, which I&#8217;ve started hearing more and more about. We&#8217;ve successfully used <a href="http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm" target="_blank">Cairngorm</a> in dozens of Flex/AIR projects at <a href="http://www.enpresiv.com/" target="_blank">Enpresiv</a> and I thought it was time to try out Mate (<a href="http://www.asfusion.com/blog/entry/mate-flex-framework-in-public-alpha" target="_blank">apparently pronounced mah-teh</a>).</p>
<p>I&#8217;m glad I did, because it is an awesome framework with much flexibility making it suitable for many different types of projects. One of my favourite things about the framework is how quick and easy it is to integrate. It doesn&#8217;t force you to use all Mate concepts either, providing endless options for partial integration into existing projects that might just need a little structure.</p>
<p>One of the <a href="http://www.google.com/search?q=cairngorm+events+respond+views&#38;ie=UTF-8&#38;oe=UTF-8" target="_blank">issues with Cairngorm that a lot of people have trouble with is easily responding to events/commands within a view</a> (albeit the event that dispatched the event or not). I was happily surprised when I found out this is one of the easiest things to do within Mate, and there are two ways to do it!</p>
<p>Mate advocates the <a href="http://en.wikipedia.org/wiki/Dependency_injection" target="_blank">Dependency Injection</a> pattern over the <a href="http://www.adobe.com/devnet/flex/articles/cairngorm_pt2_06.html" target="_blank">Model Locator pattern which Cairngorm advocates</a>. Dependency Injection is a fantastic concept and truly promotes reusable views as the view needs no knowledge of the framework. Your view doesn&#8217;t really need to respond to an event directly, it just receives only the required or updated data it needs.</p>
<p>The second means for views to directly respond to events is using the <a href="http://mate.asfusion.com/page/documentation/tags/listener" target="_blank">Listener tag</a>, which simply could not be any easier to work with.</p>
<p>I&#8217;ve worked up a basic yet focussed <a href="http://www.scottmebberson.com/examples/mate/listenersexample/" target="_blank">example on two options for repsonding to Mate events within views</a>.</p>
<p>I plan on discussing other Mate features in future posts, but thought this was a great starting point as it&#8217;s the source of pain for many Cairngorm developers. Although, <a href="http://umcairngorm.riaforge.org/" target="_blank">Universal Mind have released some extensions which make responding to events/commands within views much easier</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Flex with Struts 2 with Source]]></title>
<link>http://niamathbasha.wordpress.com/2009/06/26/flex-with-struts-2-with-source/</link>
<pubDate>Fri, 26 Jun 2009 04:53:19 +0000</pubDate>
<dc:creator>niamathbasha</dc:creator>
<guid>http://niamathbasha.wordpress.com/2009/06/26/flex-with-struts-2-with-source/</guid>
<description><![CDATA[In my previous post (http://niamathbasha.wordpress.com/2008/09/01/configuring-struts-2-with-flex/) I]]></description>
<content:encoded><![CDATA[In my previous post (http://niamathbasha.wordpress.com/2008/09/01/configuring-struts-2-with-flex/) I]]></content:encoded>
</item>

</channel>
</rss>
