<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Through My Lenses &#187; flex</title>
	<atom:link href="http://www.ericstoike.com/wp/tag/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ericstoike.com/wp</link>
	<description>A look into the world as I see it...</description>
	<lastBuildDate>Mon, 07 Jun 2010 04:05:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- podcast_generator="podPress/8.8" - maintenance_release="8.8.4" -->
		<copyright>Copyright &#xA9; Through My Lenses 2010 </copyright>
		<managingEditor>eric@gvfootball.com (Through My Lenses)</managingEditor>
		<webMaster>eric@gvfootball.com (Through My Lenses)</webMaster>
		<category>posts</category>
		<itunes:keywords></itunes:keywords>
		<itunes:subtitle></itunes:subtitle>
		<itunes:summary>A look into the world as I see it...</itunes:summary>
		<itunes:author>Through My Lenses</itunes:author>
		<itunes:category text="Society &amp; Culture"/>
		<itunes:owner>
			<itunes:name>Through My Lenses</itunes:name>
			<itunes:email>eric@gvfootball.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://www.ericstoike.com/wp/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<image>
			<url>http://www.ericstoike.com/wp/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
			<title>Through My Lenses</title>
			<link>http://www.ericstoike.com/wp</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>#cfunited Notes &#8211; &#8220;CF Developer&#8217;s Guide to Mate Flex Framework&#8221;</title>
		<link>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf-developers-guide-to-mate-flex-framework/</link>
		<comments>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf-developers-guide-to-mate-flex-framework/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 21:49:44 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[CFUnited 2009 Notes]]></category>
		<category><![CDATA[#cfunited]]></category>
		<category><![CDATA[#cfunited2009]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=780</guid>
		<description><![CDATA[Sample Application
Uses upcoming.org REST API to show events
ColdFusion End

basic CFC to call API (getCountryList, getStateList, getEvent, search, etc)

Mate

easily handle flex events
tag-based
dependency injection
supports modules
flex messaging support
extensible (extensions available)

Typical Process

view &#8212; event &#8211;&#62; main.mxml -&#62; eventMap (remote objects to CF) -&#62; manager
result is then injected into the view

Terminology
EventMap:

EventHandlers
RemoteObjectInvoker
ResultHandlers
MethodInvoker
EventAnnouncer
Injectors

Manager
Setting up your Flex App

Enable CF remoting
Include mate.swc
Typical folder structure

Mate [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Sample Application</strong></p>
<p>Uses upcoming.org REST API to show events</p>
<p><strong>ColdFusion End</strong></p>
<ul>
<li>basic CFC to call API (getCountryList, getStateList, getEvent, search, etc)</li>
</ul>
<p><strong>Mate</strong></p>
<ul>
<li>easily handle flex events</li>
<li>tag-based</li>
<li>dependency injection</li>
<li>supports modules</li>
<li>flex messaging support</li>
<li>extensible (extensions available)</li>
</ul>
<p><strong>Typical Process</strong></p>
<ul>
<li>view &#8212; event &#8211;&gt; main.mxml -&gt; eventMap (remote objects to CF) -&gt; manager</li>
<li>result is then injected into the view</li>
</ul>
<p><strong>Terminology</strong></p>
<p>EventMap:</p>
<ul>
<li>EventHandlers</li>
<li>RemoteObjectInvoker</li>
<li>ResultHandlers</li>
<li>MethodInvoker</li>
<li>EventAnnouncer</li>
<li>Injectors</li>
</ul>
<p>Manager</p>
<p><strong>Setting up your Flex App</strong></p>
<ul>
<li>Enable CF remoting</li>
<li>Include mate.swc</li>
<li>Typical folder structure</li>
</ul>
<p>Mate does not care about how you build your view</p>
<ul>
<li>follow standard flex practices</li>
<li>no framework references in the view (exception being dispatcher which does &#8220;private&#8221; events but this shouldn&#8217;t be used unless needed)</li>
</ul>
<p><strong>Events are Events</strong></p>
<ul>
<li>just regular events</li>
<li>dispatched using standard dispatchEvent() method</li>
<li>&#8220;bubbles = true&#8221; will be helpful</li>
</ul>
<p><strong>EventMap handles Mapping Events</strong></p>
<p>EventHandlers define</p>
<ul>
<li>what the event responds to</li>
</ul>
<p><strong>Confronting your manager</strong></p>
<ul>
<li>business &amp; app logic</li>
<li>bindable properties</li>
</ul>
<p><strong>Injecting Data</strong></p>
<ul>
<li>keep view independent of framework</li>
<li>view has a setter method to update it when event happens</li>
<li>injectors are defined with target and then data to pass (propertyInjector, listenerInjector).</li>
</ul>
<p><strong>Responding to event in the view</strong></p>
<p>- cut off -</p>
<p><strong>References</strong></p>
<ul>
<li><a href="http://mate.asfusion.com">http://mate.asfusion.com</a></li>
<li><a href="http://www.adobe.com/newsletters/edge/june2009/articles/article5/index.html">http://www.adobe.com/newsletters/edge/june2009/articles/article5/index.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf-developers-guide-to-mate-flex-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#cfunited Notes &#8211; &#8220;CF9 and AIR: Developing Offline Applications&#8221;</title>
		<link>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf9-and-air-developing-offline-applications/</link>
		<comments>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf9-and-air-developing-offline-applications/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 14:45:10 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[CFUnited 2009 Notes]]></category>
		<category><![CDATA[#cfunited]]></category>
		<category><![CDATA[#cfunited2009]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=772</guid>
		<description><![CDATA[The same 3 ways (WebService, HTTPService and RemoteObject) to connect to CF from AIR that existed in CF8 will continue in 9.
New things in Centaur
Fast Remoting

made several times faster
direct data translation between ActionScript and CF types
circular ref bug is fixed
no code changes required
support the old style remoting for backwards compatibility

ActionSript proxies to access CF tags

access [...]]]></description>
			<content:encoded><![CDATA[<p>The same 3 ways (WebService, HTTPService and RemoteObject) to connect to CF from AIR that existed in CF8 will continue in 9.</p>
<p>New things in Centaur</p>
<p>Fast Remoting</p>
<ul>
<li>made several times faster</li>
<li>direct data translation between ActionScript and CF types</li>
<li>circular ref bug is fixed</li>
<li>no code changes required</li>
<li>support the old style remoting for backwards compatibility</li>
</ul>
<p>ActionSript proxies to access CF tags</p>
<ul>
<li>access CF tags from within MXML</li>
<li>chart, image, document, mail, pdf, pop</li>
<li>no server code (cfm/cfc) required</li>
<li>enable access to services in CFAdmin (username/IP)</li>
<li>include &#8220;services.swc&#8221; in AIR app</li>
<li>use &lt;cf:Config&#8230;&gt; to connect to the server</li>
</ul>
<p>? offline access to proxy?</p>
<p>No the processing engine is the CF server so this part will not work offline.</p>
<p>Built-in online support</p>
<ul>
<li>build offline apps without SQL mess and conflict handling</li>
<li>CF-AIR persistent framework for SQLite DB on client side</li>
<li>CF keeps track of all updates to local DB and syncs the server</li>
<li>session.commit() will send all changes that have happened in the session since the last commit</li>
<li>conflict handling is completely configurable based on operation (insert, update, delete). you get back the original object and the new object and can decide which should be saved where.</li>
</ul>
<p>Other Enhancements</p>
<p>remotingFetch</p>
<ul>
<li>cfProperty attribute</li>
<li>if false, the value is not send on the wire for flash remoting</li>
<li>true by default</li>
</ul>
<p>resetTrackingChanges</p>
<ul>
<li>resets all tracking data in CF offline store</li>
</ul>
<p>ignoreLazyLoad</p>
<ul>
<li>on commit, need entire tree</li>
</ul>
<p><a href="http://askjayvir.blogspot.com">askjayvir.blogspot.com</a><br />
<a href="http://rakshith.net">rakshith.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf9-and-air-developing-offline-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#cfunited Notes &#8211; &#8220;Digging Through the Flex Framework&#8221;</title>
		<link>http://www.ericstoike.com/wp/2009/08/12/cfunited-notes-digging-through-the-flex-framework/</link>
		<comments>http://www.ericstoike.com/wp/2009/08/12/cfunited-notes-digging-through-the-flex-framework/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 18:24:18 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[CFUnited 2009 Notes]]></category>
		<category><![CDATA[#cfunited]]></category>
		<category><![CDATA[#cfunited2009]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=759</guid>
		<description><![CDATA[Important skill
Why?

Everything isn&#8217;t always out of the box
open source
times are rough (set yourself apart)

Real world examples
Tips

become familiar with class hierarchy
FB keyboard shortcuts
source location (including default CSS)
finding component that best fits needs
preserve compiler generated code

Class Hierarchy

important to know wehre you are so you know whats available
UIComponent is base case for all visual components
ref docs contain inheritance [...]]]></description>
			<content:encoded><![CDATA[<p>Important skill</p>
<p>Why?</p>
<ul>
<li>Everything isn&#8217;t always out of the box</li>
<li>open source</li>
<li>times are rough (set yourself apart)</li>
</ul>
<p>Real world examples</p>
<p>Tips</p>
<ul>
<li>become familiar with class hierarchy</li>
<li>FB keyboard shortcuts</li>
<li>source location (including default CSS)</li>
<li>finding component that best fits needs</li>
<li>preserve compiler generated code</li>
</ul>
<p>Class Hierarchy</p>
<ul>
<li>important to know wehre you are so you know whats available</li>
<li>UIComponent is base case for all visual components</li>
<li>ref docs contain inheritance paths (docs are your best friend)</li>
</ul>
<p>Keyboard Shortcuts</p>
<ul>
<li>Quick class opener (cmd + shift + T) &#8211; opens window and filters list as your type in search</li>
<li>quick class property/method (control + O) &#8211; lists all methods and properties for current file. works well for large files like UIComponent which is 9300+ lines</li>
</ul>
<p>Source Location</p>
<ul>
<li>/{FlexBuilderInstall}/sdks/{version}/frameworks/projects/framework</li>
<li>defaults.css</li>
</ul>
<p>Demos</p>
<p>TextHeader/LabelHeader</p>
<ul>
<li>Extends Text &amp; Label</li>
<li>Objective: add border support</li>
<li>Container supports bg and border styles but how? container base class and found the borderSkin style value</li>
</ul>
<p>ResizableTextArea</p>
<ul>
<li>&#8220;gripper&#8221; was keyword</li>
</ul>
<p>Preserving Compiler Generated Code</p>
<ul>
<li>not all functionality is hard coded in the source</li>
<li>some is wired in generated code &#8211; deferred instantiation (tab content aren&#8217;t rendered until clicked on) and effect triggers</li>
<li>-keep compiler switch in the project settings</li>
</ul>
<p>Overall, a bit over my head but good preso. Javier really knows his stuff!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/08/12/cfunited-notes-digging-through-the-flex-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#360Flex Wrap-up</title>
		<link>http://www.ericstoike.com/wp/2009/05/20/360flex-wrap-up/</link>
		<comments>http://www.ericstoike.com/wp/2009/05/20/360flex-wrap-up/#comments</comments>
		<pubDate>Wed, 20 May 2009 21:27:26 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[360Flex Notes]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[360flex]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[wrap-up]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=736</guid>
		<description><![CDATA[I had heard about these conferences for quite some time but this is the first one that I have attended. It definitely lived up to everything I&#8217;ve heard and will definitely be back!   I like that it rotates and can&#8217;t wait for which town I will attend in next!  
I took numerous [...]]]></description>
			<content:encoded><![CDATA[<p>I had heard about these conferences for quite some time but this is the first one that I have attended. It definitely lived up to everything I&#8217;ve heard and will definitely be back! <img src='http://www.ericstoike.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I like that it rotates and can&#8217;t wait for which town I will attend in next! <img src='http://www.ericstoike.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I took numerous photowalks and here are <a href="http://www.flickr.com/photos/cowboyericgvsu/collections/72157618491043004/">all my photos</a> from my adventures in Indianapolis, IN.</p>
<p>I used my blog for notes on each session and here are links to each:</p>
<p>Monday<br />
<a href="http://www.ericstoike.com/wp/2009/05/18/360flex-notes-addeventlistener-now-what-josh-buhler/">addEventListener() now what? &#8211; Josh Buhler</a><br />
<a href="http://www.ericstoike.com/wp/2009/05/18/360flex-notes-degrafa-declarative-graphics-framework-juan-sanchez/">Degrafa: Declarative Graphics Framework</a><br />
<a href="http://www.ericstoike.com/wp/2009/05/18/360flex-notes-yet-another-flex-mapping-api-not-mansour-raad-and-antony-jayaprakash/">Yet Another Flex Mapping API, NOT! &#8211; Mansour Raad</a><br />
<a href="http://www.ericstoike.com/wp/2009/05/18/360flex-notes-custom-itemrenders-ryan-frishberg-and-joan-lafferty/">Custom Item Renderers &#8211; Ryan Frsihberg and Joan Lafferty</a></p>
<p>Tuesday<br />
<a href="http://www.ericstoike.com/wp/2009/05/19/360flex-notes-putting-the-ux-in-flex-joe-johnston/">Putting the UX in Flex &#8211; Joe Johnston</a><br />
<a href="http://www.ericstoike.com/wp/2009/05/19/360flex-notes-advanced-data-visualization-tom-gonzalez/">Axiis Release! &#8211; Tom Gonzalez</a><br />
<a href="http://www.ericstoike.com/wp/2009/05/19/360flex-notes-making-your-flex-appliations-standout-with-a-great-ux-francisco-inchauste/">Making your Flex Apps Standout with Great UX &#8211; Francisco Inchauste</a><br />
<a href="http://www.ericstoike.com/wp/2009/05/19/360flex-notes-programmatic-skinning-in-flex-jeremy-saenz/">Programmatic Skinning &#8211; Jeremy Saenz</a><br />
<a href="http://www.ericstoike.com/wp/2009/05/19/360flex-notes-breaking-down-your-apps-with-mate-laura-arguello/">Breaking Down your Apps with Mate &#8211; Laura Arguello</a></p>
<p>Wednesday<a href="http://www.ericstoike.com/wp/2009/05/20/360flex-notes-integrating-accessibility-in-an-enterprise-level-flex-app-michelle-bagur/"><br />
Integrating Accessibility in an Enterprise-Level Flex App &#8211; Michelle Bagur</a><a href="http://www.ericstoike.com/wp/2009/05/20/360flex-notes-using-rsls-chase-brammer/"><br />
Using RSLs &#8211; Chase Brammer</a><a href="http://www.ericstoike.com/wp/2009/05/20/360flex-notes-building-real-time-applications-with-blaze-dslcds-dan-blackman/"><br />
Building Real-Time Applications in Blaze DS/LCDS &#8211; Dan Blackman</a><br />
<a href="http://www.ericstoike.com/wp/2009/05/20/360flex-notes-flex-cf-and-lcds-magic-nick-kwaitkowski/">Flex, CF, and LCDS Magic &#8211; Nick Kwaitkowski</a></p>
<p>That&#8217;s all folks! Getting in the car with <a href="http://twitter.com/betsyweber">@betsyweber</a>, <a href="http://twitter.com/babarakus">@babarakus</a>, and <a href="http://twitter.com/quetwo">@quetwo</a> to head home. I am sure there will be some more interesting conversations on the way home. Spirit babies? Gorilla legs? Bacon suckers? What? <img src='http://www.ericstoike.com/wp/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/05/20/360flex-wrap-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#360Flex Notes &#8211; &#8220;Flex, CF, and LCDS Magic&#8221; &#8211; Nick Kwaitkowski</title>
		<link>http://www.ericstoike.com/wp/2009/05/20/360flex-notes-flex-cf-and-lcds-magic-nick-kwaitkowski/</link>
		<comments>http://www.ericstoike.com/wp/2009/05/20/360flex-notes-flex-cf-and-lcds-magic-nick-kwaitkowski/#comments</comments>
		<pubDate>Wed, 20 May 2009 21:03:46 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[360Flex Notes]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[360flex]]></category>
		<category><![CDATA[cf]]></category>
		<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[lcds]]></category>
		<category><![CDATA[magic]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=738</guid>
		<description><![CDATA[Magic you say?
4 lines of code to get data from app server to clients
CF &#8211;&#62; Adobe CF 7+ works but 8+ has LCDS baked in. No Railo/BlueDragon/etc.
LCDS &#8211;&#62; middleware app designed to move data
Flex &#8211;&#62; 2.0.1+
Data &#8211;&#62; any serializable data including DB, LDAP, email, FTP, mapping software, web services, etc.
LCDS &#8211; expensive? yes and no.
BlazeDS [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Magic you say?</strong><br />
4 lines of code to get data from app server to clients</p>
<p>CF &#8211;&gt; Adobe CF 7+ works but 8+ has LCDS baked in. No Railo/BlueDragon/etc.<br />
LCDS &#8211;&gt; middleware app designed to move data<br />
Flex &#8211;&gt; 2.0.1+<br />
Data &#8211;&gt; any serializable data including DB, LDAP, email, FTP, mapping software, web services, etc.</p>
<p>LCDS &#8211; expensive? yes and no.<br />
BlazeDS is light, open source version without data management<br />
LCDS ES &#8211; J2EE app that Adobe sells that includes all the features of BlazeDS, plus DM, NIO messaging, etc.<br />
LCDS ES Single CPU License (was Express Edition) &#8211; free version that works on 1 CPU and will not cluster. Can be used for dev/testing/production environments. based into CF8 download. MSU has done 3-400 clients on this free version.</p>
<p>Flex SDK &#8220;Next&#8221; will be offering client side data management. Why should I care?<br />
great for small data but not much else.<br />
no data sync, data caching, or conflict resolution</p>
<p><strong>Data Management</strong><br />
pass data to LCDS and let it handle passing it to the client. You can control how it passes including pagination and data sync.<br />
LCDS assumes its the only one interacting with the DB.</p>
<p><strong>Data Messaging</strong><br />
allows flex clients to communicate with each other without tying up resources on the app server<br />
over TCP, HTTP polling, etc.</p>
<p><strong>Data Proxying</strong><br />
you can proxy your web sevice or remoting calls through the LCDS to help get around restrictions in firewalls and policies</p>
<p><strong>Example of data management</strong><br />
2 clients. change data on one and see the changes on another. reduce the chances of clients having conflicting data. Revert is built-in with hardly any code.</p>
<p><strong>Coding the Flex Side</strong><br />
create a new collection to store the data<br />
create a value object so the data serializes properly<br />
utilize the DataService MXML tag and call the fill function</p>
<p><strong>Why it works?</strong><br />
data is packaged up into value objects or packages of data<br />
each VO is tracked separately as to who is viewing, editing, etc.<br />
users then subscribe to a set of data<br />
LCDS will &#8216;listen&#8217; to any changes made to the data in the client<br />
if the collection that holds the data is changed, LCDS will take change, change VO in memory, send change to app server and update clients<br />
when an update is sent to other clients, it will check its local copy to make sure it hasn&#8217;t changed. if it has, it will issue &#8220;conflict&#8221; event and allow the client to choose.<br />
on the client, 95% of work is handled by collection class<br />
handles updating LCDS with changes and notifying other visual components of the change<br />
when a dataGrid broadcast the change event, the collection hears, updates its own data and passes on the change.</p>
<p><strong>Blackbox of LCDS</strong><br />
config files in wwwroot<br />
master is services-config.xml<br />
other files include channel info (services), messaging config (messaging), DM (data-management) and flash remoting (remoting)</p>
<p><strong>Channels</strong><br />
Default Channels:<br />
my-cfamf &#8211;&gt; does AMF endpoints. binary over HTTP. firewalls might break it but normally a good way to go.<br />
cf-polling-amf &#8211;&gt; works well with nasty firewall. every X seconds ask server if there is new data<br />
air-rtmp (Nick will provide downloads) &#8211;&gt; direct connection through tcp socket which stays open. offloads some i/o from your application server. port 2050<br />
cf-rtmp &#8211;&gt; port 2048<br />
port range recommendation: typically stay around 2048. that is registered by Adobe for RTMP. above 1024 because below that is well defined ports. it will all depend on the client firewalls.</p>
<p><strong>Destinations</strong><br />
a destination needs an endpoint which is used to encapsulate your data based on server.<br />
multiple channels are allowed as fall backs. if the first is not available, the next in the list is used after a &#8220;reasonable amount of time&#8221;. limit of 16 channels.</p>
<p><strong>Properties</strong><br />
component: cfc that does the data handling<br />
scope: how long the data lives<br />
access: remote (default) corresponds to the access of the cfc<br />
property-case: change the case of functions/variables<br />
metadata: identity &#8211; normally ID of the table ie PARKNAME, query-row-type &#8211; path to value object</p>
<p>Documentation in default file contains all the options/values.</p>
<p><strong>Lots of channel options</strong><br />
AMF typically run over HTTP. Tend to be slower or designed for one time polls and can be combined with HTTPS.<br />
RTMP typically run over 2048. real-time, quick, easy but firewalls have been known to block on occasion.</p>
<p>Don&#8217;t worry about selecting a single channel. Normally RTMP and then polling is a good option.<br />
Each destination can define channels which it wants to use<br />
Each destination is just a name but must be unique to the server.</p>
<p><strong>CF Fun!</strong><br />
final part of this puzzle is the CF side. could be any language by why? <img src='http://www.ericstoike.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
traditional CRUD<br />
fill() &#8211; think of this as the get all<br />
get() &#8211; this is to get a single item<br />
sync() this performs create, delete, and update<br />
count() &#8211; this needs to return the number of records for pagination, finding updates, etc</p>
<p><strong>Unsolicited Updates</strong><br />
one of the coolest features is the fact that you can push unsolicited updates to clients<br />
examples: non-flex client update data, customer buys something from your store, or new email comes in</p>
<p><strong>Creating unsolicited updates</strong><br />
3 easy steps:<br />
create event gateway of type &#8220;DateManagement&#8221;<br />
create some sort of VO<br />
pass this VO to the event gateway &#8211; the update will be pushed to your clients.</p>
<p>With FB/RDS, there is a wizard for creating the value object/cfc. Flex 4 will include more wizards.</p>
<p><strong>Examples of uses:</strong><br />
CRUD for DB<br />
Directory watcher<br />
collaborative doc management<br />
email client<br />
collaborative GIS app</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/05/20/360flex-notes-flex-cf-and-lcds-magic-nick-kwaitkowski/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#360Flex Notes &#8211; &#8220;Building real time applications with Blaze DS/LCDS&#8221; &#8211; Dan Blackman</title>
		<link>http://www.ericstoike.com/wp/2009/05/20/360flex-notes-building-real-time-applications-with-blaze-dslcds-dan-blackman/</link>
		<comments>http://www.ericstoike.com/wp/2009/05/20/360flex-notes-building-real-time-applications-with-blaze-dslcds-dan-blackman/#comments</comments>
		<pubDate>Wed, 20 May 2009 19:57:13 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[360Flex Notes]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[360flex]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[cf]]></category>
		<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[lcds]]></category>
		<category><![CDATA[note]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=733</guid>
		<description><![CDATA[The why?!?
CF request/response applications
Flex RIA
persisted data is not refreshed automatically
stateful approach to managing data &#8211; no more sessions
refreshed through manual client interactions or AS
Flex Real-time Apps
persisted data is refreshed via interactions w/ server
stateful approach w/ server side sync
refreshed through polling, long polling, or RTMP
data management service &#8211; life cycle service &#8211; provides data sync between [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The why?!?</strong><br />
CF request/response applications<br />
<strong>Flex RIA</strong><br />
persisted data is not refreshed automatically<br />
stateful approach to managing data &#8211; no more sessions<br />
refreshed through manual client interactions or AS<br />
<strong>Flex Real-time Apps</strong><br />
persisted data is refreshed via interactions w/ server<br />
stateful approach w/ server side sync<br />
refreshed through polling, long polling, or RTMP<br />
data management service &#8211; life cycle service &#8211; provides data sync between clients</p>
<p><strong>Intro to LCDS</strong><br />
consists of: flex messaging service, flex data management, flex proxy service, and remote object service</p>
<p><strong>Push vs Pull</strong><br />
pull is client asks server for data<br />
push is server actually pushing data to client</p>
<p><strong>Types<br />
Simple AMF</strong> &#8211; stateful approach<br />
<strong>RTMP</strong> &#8211; real time messaging protocol<br />
maintains persistent connection<br />
allows real time<br />
uses java-nio facilities<br />
<strong>Polling</strong><br />
flex client sends requests for messages periodically</p>
<p><strong>Configuring channel/destination</strong><br />
-CFGateway: messages sent between cf8/flex<br />
-JMS Adapter: allows to use both JMS/Flex clients to communicate<br />
-AS Adapter: flex default allows only flex clients to participate in communication</p>
<p><strong>Channels</strong><br />
my-cf-amf<br />
cf-polling-amf<br />
cf-long-polling-amf<br />
cf-streaming-amf<br />
cf-rtmp</p>
<p>Examples using LCDS (chat) and then CFGateway (Facebook notifications)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/05/20/360flex-notes-building-real-time-applications-with-blaze-dslcds-dan-blackman/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#360Flex Notes &#8211; &#8220;Using RSLs&#8221; &#8211; Chase Brammer</title>
		<link>http://www.ericstoike.com/wp/2009/05/20/360flex-notes-using-rsls-chase-brammer/</link>
		<comments>http://www.ericstoike.com/wp/2009/05/20/360flex-notes-using-rsls-chase-brammer/#comments</comments>
		<pubDate>Wed, 20 May 2009 18:17:14 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[360Flex Notes]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[360flex]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[note]]></category>
		<category><![CDATA[rsl]]></category>
		<category><![CDATA[runtime]]></category>
		<category><![CDATA[shared]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=730</guid>
		<description><![CDATA[Using SVG for edit in place in Flex apps &#8211; clients complained about size/speed.
Advantages
reduce file size
library caching
code reuse
faster compile time
single point of distribution/update
collaborative and community work
Disadvantages
cross domain issues
can&#8217;t create signed RSLs
debugging
quick editing
must download the whole RSL (doesn&#8217;t trim unused classes)
RSLs act like diet pills for the size.
What is an RSL
Purpose
To quickly reduce your apps file [...]]]></description>
			<content:encoded><![CDATA[<p>Using SVG for edit in place in Flex apps &#8211; clients complained about size/speed.<br />
<strong>Advantages</strong><br />
reduce file size<br />
library caching<br />
code reuse<br />
faster compile time<br />
single point of distribution/update<br />
collaborative and community work</p>
<p><strong>Disadvantages</strong><br />
cross domain issues<br />
can&#8217;t create signed RSLs<br />
debugging<br />
quick editing<br />
must download the whole RSL (doesn&#8217;t trim unused classes)</p>
<p>RSLs act like diet pills for the size.</p>
<p><strong>What is an RSL<br />
Purpose</strong><br />
To quickly reduce your apps file size<br />
code one, use in many places<br />
<strong> How do it do that?</strong><br />
Kung Fu. <img src='http://www.ericstoike.com/wp/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
separates large code of flex into other places</p>
<p><strong>Terms</strong><br />
RSL &#8211; runtime shared library<br />
Signed RSL &#8211; Adobe published RSL<br />
Unsigned RSL &#8211; the RSL for the rest of us<br />
SWZ &#8211; an adobe signed RSL<br />
SWC &#8211; zip file contains compiled Flash/Flex project that is not standalone code<br />
Library.swf &#8211; one of the two files that are in a SWC<br />
Catalog.xml &#8211; second file in a SWC<br />
Compc &#8211; component compiler<br />
Browser cache &#8211; your browsers of choice cache, not to be confused with Flash Player Cache<br />
Flash cache &#8211; Flash Player&#8217;s internal cache<br />
ANT automated command line built utility</p>
<p><strong>Where do I find my RSLs</strong><br />
SDK/frameworks/rsls</p>
<p><strong>Flex Core RSLs</strong><br />
how to speed up your apps? make the file size smaller.<br />
<strong> 1. use case: app is big. too big. you need it smaller and faster.</strong><br />
solution: separate your flex framework from your RSLs<br />
<strong>2. use case: you have a project that has a core set of components, libraries, or utilities that are pretty much stable and you dont want to force the users to re-download all of that every time on release.<br />
</strong>solution: create an RSL<br />
<strong>3. use case: you, a friend, a co-worker or some dude in India just gave you a SWC and you want to use it as an RSL</strong><br />
solution: import into your project and make it an RSL<br />
<strong> 4. use case: your company has a common set of components, libraries, or assets that you want to share across multiple projects</strong><br />
solution: create a cross-domain RSL<br />
digest must be enabled &#8220;-compute-digest=true&#8221;<br />
<strong>5. use case: feeling good but client wants even faster!</strong><br />
solution: run the optimizer<br />
<strong>6. collaborative work<br />
7. automated builds for deploying RSLs</strong></p>
<p>Something to laugh<br />
<a href="http://www.youtube.com/watch?v=xUosP0Hkoek">http://www.youtube.com/watch?v=xUosP0Hkoek</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/05/20/360flex-notes-using-rsls-chase-brammer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#360Flex Notes &#8211; &#8220;Integrating Accessibility in an Enterprise-level Flex App&#8221; &#8211; Michelle Bagur</title>
		<link>http://www.ericstoike.com/wp/2009/05/20/360flex-notes-integrating-accessibility-in-an-enterprise-level-flex-app-michelle-bagur/</link>
		<comments>http://www.ericstoike.com/wp/2009/05/20/360flex-notes-integrating-accessibility-in-an-enterprise-level-flex-app-michelle-bagur/#comments</comments>
		<pubDate>Wed, 20 May 2009 15:18:45 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[360Flex Notes]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[360flex]]></category>
		<category><![CDATA[508]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[section]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=727</guid>
		<description><![CDATA[History
Rehabilitation Act &#8211; 1973
you can&#8217;t discriminate based on disability
Section 508 &#8211; 1998
required federal agencies to make their technology accessible to people with disabilities
any group that gets money from the federal government also falls under this
ie. universities, benefits,
http://section508.gov/
Principles of accessibility (developed by WCAG)
perceivable
operable
understandable
robust
Compliance
How do you know? test, find impaired user, combination of automated tools/best judgement
Is the [...]]]></description>
			<content:encoded><![CDATA[<p><strong>History</strong><br />
<strong>Rehabilitation Act &#8211; 1973</strong><br />
you can&#8217;t discriminate based on disability</p>
<p><strong>Section 508 &#8211; 1998</strong><br />
required federal agencies to make their technology accessible to people with disabilities<br />
any group that gets money from the federal government also falls under this<br />
ie. universities, benefits,<br />
<a href="http://section508.gov/">http://section508.gov/</a></p>
<p><strong>Principles of accessibility (developed by WCAG)</strong><br />
perceivable<br />
operable<br />
understandable<br />
robust</p>
<p><strong>Compliance</strong><br />
How do you know? test, find impaired user, combination of automated tools/best judgement<br />
Is the &#8220;spirit&#8221; of compliance good enough? alternative approaches, are they different but equal? some say yes, some say no.<br />
For example, 2 steps vs. 10 steps? equal?</p>
<p><strong>Why does it matter?</strong><br />
<strong> Target Lawsuit</strong><br />
Why? not section 508 compliant b/c of alt tags<br />
By whom? national federation of the blind<br />
Results? working with org to fix the site. $6 mil in damages</p>
<p><strong>Assistive Technologies</strong><br />
Keyboard navigation<br />
no extra requirements<br />
tabbing/hotkeys</p>
<p><strong>Screen Readers</strong><br />
JAWS by Freedom Scientific (has the market share)<br />
Windows Eyes by GW Micro<br />
VoiceOver by Apple (sounds the most like a human)<br />
the first two work with Flex</p>
<p><strong>How do Screen Readers work?</strong><br />
MSAA (Microsoft Active Accessibility)<br />
API &#8211; 1997<br />
IAccessible COM interface<br />
4 pieces exposed by API: name, type, value, state<br />
UIAutomation</p>
<p>Client is assistive technology and server is the application.</p>
<p>Communication is through properties (client asks server) and events (server broadcasts)</p>
<p><strong>Examples:</strong><br />
<strong> Good?</strong><br />
amazon.com &#8211; tells you that there is an accessible version right away. much simpler.<br />
dignubia.org (IE only) &#8211; read all links/buttons</p>
<p><strong>Bad?</strong><br />
google.com &#8211; didn&#8217;t tell much from the start. one tab brought to the search box and worked well.<br />
contrast is normally a big issue.</p>
<p><strong>Flex 3 and MSAA</strong><br />
three main classes<br />
Flash.accessibility.AccessibilityImplementation<br />
Flash.accessibility.AccessibilityProperties<br />
Flash.accessibility.Accessibility</p>
<p>compile with &#8220;-accessible = true&#8221;</p>
<p><strong>Official Flex 4 statement</strong><br />
When it ships, spark components will not be accessible/nor automation. 4.1 will include this and won&#8217;t be far behind. Next version of the player will look to get past MSAA but this isn&#8217;t even in the playing stages yet. So&#8230; continuing to work on it.<br />
- Matt Chotin</p>
<p><strong>How is it supposed to work?</strong><br />
Flex 3<br />
JAWS 8,9,10 with IE. JAWS scripts have to be installed.</p>
<p><strong>Chain of command:</strong><br />
Flex SDK<br />
Flash Player<br />
JAWS scripts<br />
JAWS</p>
<p>Official documentation says there are 28 accessible components but the data visualization is separate from this.<br />
Do not try to retro-actively put accessibility into a Flex project &#8211;&gt; nightmare!</p>
<p><strong>Tips/Tricks</strong><br />
make sure scripts are installed<br />
start tabIndex at 1<br />
don&#8217;t be afraid of the focusThickness property (3)<br />
get focus into Flash app (semi successfully)<br />
possible method to force the tab to stay without app<br />
tooltips &#8211; pay attention to name/description and the 4 values of them</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/05/20/360flex-notes-integrating-accessibility-in-an-enterprise-level-flex-app-michelle-bagur/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#360Flex Notes &#8211; &#8220;Breaking down your apps with Mate&#8221; &#8211; Laura Arguello</title>
		<link>http://www.ericstoike.com/wp/2009/05/19/360flex-notes-breaking-down-your-apps-with-mate-laura-arguello/</link>
		<comments>http://www.ericstoike.com/wp/2009/05/19/360flex-notes-breaking-down-your-apps-with-mate-laura-arguello/#comments</comments>
		<pubDate>Tue, 19 May 2009 20:41:45 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[360Flex Notes]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[360flex]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[mate]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=724</guid>
		<description><![CDATA[I sat through half of this session but felt lost because I know nothing about Mate  
Seems like a great framework that is headed in the right direction without much overhead. Definitely going to look into it more.
]]></description>
			<content:encoded><![CDATA[<p>I sat through half of this session but felt lost because I know nothing about Mate <img src='http://www.ericstoike.com/wp/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Seems like a great framework that is headed in the right direction without much overhead. Definitely going to look into it more.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/05/19/360flex-notes-breaking-down-your-apps-with-mate-laura-arguello/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#360Flex Notes &#8211; &#8220;Programmatic Skinning in Flex&#8221; &#8211; Jeremy Saenz</title>
		<link>http://www.ericstoike.com/wp/2009/05/19/360flex-notes-programmatic-skinning-in-flex-jeremy-saenz/</link>
		<comments>http://www.ericstoike.com/wp/2009/05/19/360flex-notes-programmatic-skinning-in-flex-jeremy-saenz/#comments</comments>
		<pubDate>Tue, 19 May 2009 19:54:47 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[360Flex Notes]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[360flex]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[degrada]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[gumbo]]></category>
		<category><![CDATA[note]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=721</guid>
		<description><![CDATA[What is skinning?
graphical &#8211; quick and easy files from Creative Suite. nice for distribution (Scale Nine)
programmatic &#8211; not style-able with CSS, animation limited to component itself, inflexible when acting as a generic skin
stateful &#8211; not really a skinning style
programmatic skinning provides the power to create a skin that is just as flexible, if not more, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What is skinning?</strong><br />
graphical &#8211; quick and easy files from Creative Suite. nice for distribution (Scale Nine)<br />
programmatic &#8211; not style-able with CSS, animation limited to component itself, inflexible when acting as a generic skin<br />
stateful &#8211; not really a skinning style</p>
<p>programmatic skinning provides the power to create a skin that is just as flexible, if not more, than the default Flex skin (Halo)</p>
<p><strong>Flash Drawing API</strong><br />
kind of a pain<br />
lots of numbers/math<br />
25%</p>
<p><strong>Degrafa</strong><br />
really cool!<br />
uses states that look more like regular Flex states<br />
clean and reusable<br />
75%</p>
<p><strong>What else? Flex 4</strong><br />
new skin lifecycle<br />
new idea is skin &#8220;parts&#8221; ie label is part of a button.</p>
<p>Three type of parts<br />
static, deferred, dynamic (the cool one)</p>
<p>Gumbo skinning looks pretty sweet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/05/19/360flex-notes-programmatic-skinning-in-flex-jeremy-saenz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.430 seconds -->
