<?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/"
	>

<channel>
	<title>Thanks, Mister! &#187; Adobe</title>
	<atom:link href="http://www.thanksmister.com/index.php/archive/tag/adobe/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thanksmister.com</link>
	<description>Adobe Flex &#38; AIR Development</description>
	<lastBuildDate>Mon, 19 Jul 2010 17:28:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Adobe MAX 2009 &#8211; Los Angeles</title>
		<link>http://www.thanksmister.com/index.php/archive/maxwidget/</link>
		<comments>http://www.thanksmister.com/index.php/archive/maxwidget/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 16:00:30 +0000</pubDate>
		<dc:creator>Mister</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex News]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe MAX]]></category>
		<category><![CDATA[Adobe Max 2009]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://thanksmister.com/?p=672</guid>
		<description><![CDATA[This year Adobe Max 2009 is in my own backyard, well sort of 6 miles up the street, which means about an hour away in LA traffic. I am hoping to get in for free some how, either through Adobe Max Awards or by posting the Adobe Max Widget. See everyone there, maybe&#8230;]]></description>
			<content:encoded><![CDATA[<p>This year Adobe Max 2009 is in my own backyard, well sort of 6 miles up the street, which means about an hour away in LA traffic.  I am hoping to get in for free some how, either through Adobe Max Awards or by posting the Adobe Max Widget.  See everyone there, maybe&#8230;</p>
<p><img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bHQ9MTI1MDg3MzA5NzEyMSZwdD*xMjUwODczMTI5MTc3JnA9Nzc*MzcxJmQ9bWF4MDl3aWRnZXQmbj13b3JkcHJlc3MmZz*yJm89ZjVmMmY5YTk*YmY*NGVkNDg4NmNhODMyOWM5NGFiZTYmb2Y9MA==.gif" /><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="MaxWidget" width="400" height="400" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"><param name="movie" value="http://max.adobe.com/widget/test/MaxWidget.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#869ca7" /><param name="allowScriptAccess" value="sameDomain" /><embed src="http://max.adobe.com/widget/MaxWidget.swf" quality="high" bgcolor="#869ca7" width="400" height="400" name="MaxWidget" align="middle" play="true" loop="false" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" FlashVars="crtr=1&#038;gig_lt=1250873097121&#038;gig_pt=1250873129177&#038;gig_g=2&#038;gig_n=wordpress"></embed><param name="FlashVars" value="crtr=1&#038;gig_lt=1250873097121&#038;gig_pt=1250873129177&#038;gig_g=2&#038;gig_n=wordpress" /></object></p>
<p><map name='google_ad_map_672_1452acacd61817fb'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/672?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_672_1452acacd61817fb' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=672&amp;url= http%3A%2F%2Fwww.thanksmister.com%2Findex.php%2Farchive%2Fmaxwidget%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.thanksmister.com/index.php/archive/maxwidget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex 3, ColdFusion 8, and Error #1034</title>
		<link>http://www.thanksmister.com/index.php/archive/flex-3-coldfusion-8-and-error-1034/</link>
		<comments>http://www.thanksmister.com/index.php/archive/flex-3-coldfusion-8-and-error-1034/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 05:04:01 +0000</pubDate>
		<dc:creator>Mister</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Flash Remoting]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flex Builder 3]]></category>
		<category><![CDATA[RemoteObject]]></category>
		<category><![CDATA[Remoting]]></category>

		<guid isPermaLink="false">http://thanksmister.com/?p=222</guid>
		<description><![CDATA[Working on project for a new client I had had the opportunity to use Flash Remoting from Flex to talk to services on a ColdFusion server without running the ColdFusion server locally on my machine. Since I am working remote these days (at home), I wanted to connect to the CFC&#8217;s on the ColdFusion server [...]]]></description>
			<content:encoded><![CDATA[<p>Working on project for a new client I had had the opportunity to use Flash Remoting from Flex to talk to services on a ColdFusion server without running the ColdFusion server locally on my machine.  Since I am working remote these days (at home), I wanted to connect to the CFC&#8217;s on the ColdFusion server remotely from my local Flex Builder 3 working environment.  I setup a simple &#8220;Hello World&#8221; example that I found over at <a href="http://www.asfusion.com/examples/item/ifbin-flex-coldfusion-example-updated">ASFusion</a>.  </p>
<p>I uploaded the HelloWorldService.cfc file to the remote server in  &#8220;C:\ColdFurion8\wwwroot\components\com\test\HelloWolrdService&#8221;.  I then set up a <a href="http://livedocs.adobe.com/flex/2/langref/mx/rpc/remoting/mxml/RemoteObject.html">RemoteObject</a> with the endpoint property pointing to the remote ColdFusion server instead of the local host (since the example points to a local host):</p>
<div class="codecolorer-container actionscript mac-classic" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&lt;</span>mx:remoteobject id=<span style="color: #ff0000;">&quot;CFCService&quot;</span> endpoint=<span style="color: #ff0000;">&quot;http://myremoteserver.com/flashservices/gateway/&quot;</span> source=<span style="color: #ff0000;">&quot;components.com.test.HelloWorldService&quot;</span> result=<span style="color: #ff0000;">&quot;getResponse(event.result)&quot;</span><span style="color: #66cc66;">&gt;</span></div></td></tr></tbody></table></div>
<p>But I got a &#8220;Security Sandbox Error&#8221; right away from the call.   This usually tells me that there needs to be a crossdomain.xml file on the root of server allowing access from my specific location or completely open using the &#8220;*&#8221; value.  For more on the Flash security policy, check out plenty of info at <a href="http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html">Adobe&#8217;s site</a>.</p>
<p><span id="more-222"></span></p>
<p>I uploaded the crossdomain.xml file to the root with the proper security settings (completely open in my case) and gave the server a restart just for kicks (though I don&#8217;t think its required when you change or modify the crossdomain.xml file under normal circumstances (I had some other issues unrelated to this blog post, but our admin was able to unblock those, basically the server also runs an additional web server on the same box as ColdFusion which was caused problems temporarily).  So I ran the example again and received this error:</p>
<div class="codecolorer-container actionscript mac-classic" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0066CC;">Error</span> <span style="color: #808080; font-style: italic;">#1034: Type Coercion failed: cannot convert Object@359af2e1 to</span><br />
mx.<span style="color: #006600;">messaging</span>.<span style="color: #006600;">messages</span>.<span style="color: #006600;">ErrorMessage</span></div></td></tr></tbody></table></div>
<p>This error really stumped me because I am by no means any expert at ColdFusion and it has been years since I have had to mess around with it in any fashion.   I searched and searched for this error in relation to ColdFusion and Flex. I was pulling my hair out, was it the port, was it the server address, was it the location of the CFC files, what was the issue?    </p>
<p>I was really surprised at all the examples I found, they all were setup with both Flex and ColdFusion running on the same machine.   Almost nobody was running Flex locally and accessing ColdFusion CFC&#8217;s remotely, and this is what I really needed. I eventually found a post on <a href="http://www.flashcomguru.com/index.cfm/2006/11/11/flex2remoting">FlashComGuru</a> where the author had the same exact problem as me.</p>
<p>It turns out that my RemoteObject had a couple of issues.  First, it needed to have the destination property set,  in this case ColdFusion is the default name set in services-config.xml file.  Second, I had to change the endpoint property from &#8220;http://myremoteserver.com/flashservices/gateway/&#8221;  to &#8220;http://myremoteserver.com/flex2gateway/&#8221;, changing the default gateway of the remote server to &#8220;flex2gateway&#8221;.  So my updated RemoteObject code looks like this:</p>
<div class="codecolorer-container actionscript mac-classic" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&lt;</span>mx:remoteobject id=<span style="color: #ff0000;">&quot;CFCService&quot;</span> endpoint=<span style="color: #ff0000;">&quot;http://myremoteserver.com/flex2gateway/&quot;</span> source=<span style="color: #ff0000;">&quot;components.com.test.HelloWorldService&quot;</span> result=<span style="color: #ff0000;">&quot;getResponse(event.result)&quot;</span><span style="color: #66cc66;">&gt;</span></div></td></tr></tbody></table></div>
<p>Finally, the Hello World example worked great!   However, when I tried the application I was working on to hit the application specific CFC files, I didn&#8217;t get the results I wanted.    As I mentioned briefly before, the server is also running another web server on the same box as the ColdFusion server.   So the web root of the web server is &#8220;inetpub/wwwroot/&#8221;  and the application CFC&#8217;s were located under this web server&#8217;s directory.  In order to get them to work for me, I had to move them to the ColdFusion wwwroot folder &#8220;C:\ColdFurion8\wwwroot\components\&#8221;.   </p>
<p>I am sure there is a way to map the ColdFusion component directory to another server, but to save time and get myself back on schedule, I settled with placing my CFC file son the ColdFusion server instead, for now anyways.</p>
<p>I hope this post is at least a pointer to a very hard to track issue with using Flash Remoting with Flex and ColdFusion 8.   The kind of lighthouse for those Flex developers who might find themselves in the same bind <img src='http://www.thanksmister.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>-Mister</mx:remoteobject></mx:remoteobject></p>
<div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/1b7dee39-9c1d-4b54-86ba-6b915d74affd/" title="Zemified by Zemanta"><img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=1b7dee39-9c1d-4b54-86ba-6b915d74affd" alt="Reblog this post [with Zemanta]"></a></div>
<p><map name='google_ad_map_222_1452acacd61817fb'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/222?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_222_1452acacd61817fb' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=222&amp;url= http%3A%2F%2Fwww.thanksmister.com%2Findex.php%2Farchive%2Fflex-3-coldfusion-8-and-error-1034%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.thanksmister.com/index.php/archive/flex-3-coldfusion-8-and-error-1034/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drop your framework?</title>
		<link>http://www.thanksmister.com/index.php/archive/drop-your-framework/</link>
		<comments>http://www.thanksmister.com/index.php/archive/drop-your-framework/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 23:39:02 +0000</pubDate>
		<dc:creator>Mister</dc:creator>
				<category><![CDATA[Cairngorm]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Mate]]></category>
		<category><![CDATA[PureMVC]]></category>
		<category><![CDATA[Software development process]]></category>

		<guid isPermaLink="false">http://thanksmister.com/?p=160</guid>
		<description><![CDATA[After attending an interesting session at Adobe MAX 2008 titled &#8220;The Flex Architecture Face-off&#8221;. At first I though the speakers (Yakov Fain, Chafic Kazoun, Todd Anderson, and Joshua Noble) were going to debate which framework was the best, you know, Cairngorm, PureMVC, Mate, and others. Initially the speaker surveyed which frameworks developers were using and [...]]]></description>
			<content:encoded><![CDATA[<p>After attending an interesting session at Adobe MAX 2008 titled &#8220;The Flex Architecture Face-off&#8221;.  At first I though the speakers (<a href="http://flexblog.faratasystems.com/">Yakov Fain</a>, <a href="http://www.rewindlife.com/">Chafic Kazoun</a>, <a href="http://www.custardbelly.com/blog/">Todd Anderson</a>, and <a href="http://www.adobe.com/devnet/flex/articles/flex3_cookbook.html">Joshua Noble</a>) were going to debate which framework was the best, you know, <a href="http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm">Cairngorm</a>, <a href="http://puremvc.org/">PureMVC</a>, <a href="http://mate.asfusion.com/">Mate</a>, and others.   Initially the speaker surveyed which frameworks developers were using and not surprisingly, most were using Cairngorm (followed by PureMVC, then Mate).  Then the speaker asked who wasn&#8217;t using a framework at all, and I was again surprised to see that about half of the audience wasn&#8217;t using any framework.   You see I come from the thought that you need to have a framework in your box of tools to build most projects, they help coordinate group efforts, and they offer support.    I had always just assumed that most Flex developers would be using some type of framework and that the flavor of framework was the only point of contention.</p>
<p>What made this particular session interesting was how the discussion turned into a debate, not about one framework versus another, but a debate about if you want to use a framework at all.  The panel was mostly split. Chafic and Yakov were obviously not for using frameworks, while Todd and Joshua recommended using frameworks.   The reason for using a framework varied.   Some developers use them because it helps to coordinate the work when you have groups of developers, others use them because the client had stipulated that it was a &#8220;best&#8221; practice to have a framework.  This make sense because you know that even though projects have a <a href="http://en.wikipedia.org/wiki/Software_development_process" title="Software development process" rel="wikipedia" class="zem_slink">development life cycle</a>, they will also have a maintenance life cycle.   This means that the next group of developers coming in after you will need to go through your code and using a framework seems to facilitate this process.</p>
<p><span id="more-160"></span></p>
<p>This has my view since I started Flex.  I enjoy using frameworks, even though some require extra work and setup, it just makes things easier to work in a group or hand off your work to others.   It just feels comfortable to me, safe I would say.   I would typically use Cairngorm for most application development, small and large because I am familiar with this framework and its widely used.    If someone told me they were not using a framework, or I had to pick up code that was written without one from other developers, I would most likely cringe because that would require me to learn their way of doing things.   This was also a big part of the debate, how to deal with handing projects off to others or working in groups if you don&#8217;t have a framework handy.  </p>
<p>I remained skeptical and listened to how Chafic and Yakov explained how they handled these issues without using a framework.   What may seem obvious, but might be overlooked, is that Flex is already itself a framework and most of the micro-architectures build upon the Flex framework using patterns (Mediator, Proxy, Command, etc.) and the built-in event dispatch system.    If you know what you are doing with patterns and can build loosely coupled components, you can get by with out using a framework in your Flex application.  You would essentially be building black boxes (components, modules) that know nothing about other components of the application.  Communication would still take place through event dispatchers and listeners.   You can also use a pattern to build communication for server communication and data retrieval.   This is so reminiscent of my early Flash development days, when we didn&#8217;t really have a framework to build upon and we sort of invented our own communication system, mostly creating components with publicly exposed properties and methods.  </p>
<p>Another argument for not using a framework, or perhaps a complaint about them, is that they require a lot of extra work and code setup time without really allowing any benefits for the developer.  They are also traditionally hard to learn (some more than others).   For example, Yakov said he didn&#8217;t like Cairngorm that much until he learned PureMVC (which he liked much less).    I had the same feeling about PureMVC, it really feels like a heavy burden to create proxy and mediators over and over again, making all those delegates/commands much easier to create in Cairngorm. This made me think a bit about why I use a framework and what it might be like to not use one.   I have done this on smaller applications where you might communicate with compiled SWC file that wraps an API like Flickr or Yahoo Maps, but I often try to put them into proper place within PureMVC or Cairngorm because I didn&#8217;t want them in my views.   </p>
<p>I still get that feeling that when I don&#8217;t use a framework, I am somehow not being a responsible developer.   When I started doing Flex, I really wanted to use patterns and best practices, using Cairngorm makes me feel like I am following some agreed upon conventions for building Flex applications.   Not using one really makes me feel that the next person that looks at my code will be like &#8220;WTF is this spaghetti code?&#8221;.  You know that developers often back bite the previous developers when they pick up a project.  Cairngorm at least gives you some feeling that I am using standards that can be picked up by other developers.  This is especially true when you want to train new developers or work with groups of people.   </p>
<p>However,  I think there is some value to building Flex applications without using a framework.  I was  persuaded by the methods Yakov and Chafik&#8217;s mentioned for developing without a micro-architecture framework and the small gleam of freedom that shined in their eyes when they said they don&#8217;t use one.   Your development group can use an agreed upon convention for modular development and communication between components.  Each person can build a smaller component that exposes public methods and broadcast events that other interested components can subscribe to.  Also, rather than using a delegate/command to handle your business logic, you can create or wrapper API&#8217;s that handles the data calls and broadcast the events, much like adding the Flickr SWC file to your project.  Some value for not using a framework might also come when you have to build an application or prototype fast, such as done within <a href="http://en.wikipedia.org/wiki/Agile_software_development" title="Agile software development" rel="wikipedia" class="zem_slink">Agile Software Development</a>.   Jesse Warden just published a three-part series about his experience doing agile development and mentions how frameworks fit into this style.  For more info, check out his <a href="http://jessewarden.com/2008/11/agile-chronicles-1-stressful.html">Agile Chronicles</a> series.   </p>
<p>Abandoning your framework probably works best within small groups of developers that know each other and are confident in Flex.  If you are not working in such a group or you are concerned that your own methodologies for Flex might not easily support maintenance after you are gone, its probably best to use a framework. The session ended up being more a question of using a framework at all, rather than debating which one is the best or most popular.    What I would like to see is some examples by Yakov and Chafic on best practices for developing Flex applications in a group when not using a framework.  I think its may be the way I go for my next personal project, but a few pointers would be great.   </p>
<p>So, do any of you have an opinion about using a framework or not?  Best practices applied when not using a framework?  Examples?  I would love to hear them.</p>
<p><strong>UPDATE:</strong></p>
<p>I found another discussion about this topic from the FlexWizz blog article titled <a href="http://www.flexwizz.com/2008/04/01/why-i-hate-mvc/">&#8220;Why I hate MVC&#8221;</a>. </p>
<p><a href="http://custardbelly.com/blog/?p=76">Todd Anderson</a> also posted some of his thoughts about the panel discussion at MAX.</p>
<p><a href="http://www.insideria.com/2008/12/frameworkquest-2008-introducti.html">InsideRIA </a>posted a complete review of frameworks with examples.  They also ask &#8220;why use a framework at all?&#8221;</p>
<p>- Mr</p>
<div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/dc2e62c9-a4a3-4732-8125-a68be1da8505/" title="Zemified by Zemanta"><img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=dc2e62c9-a4a3-4732-8125-a68be1da8505" alt="Reblog this post [with Zemanta]"></a></div>
<p><map name='google_ad_map_160_1452acacd61817fb'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/160?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_160_1452acacd61817fb' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=160&amp;url= http%3A%2F%2Fwww.thanksmister.com%2Findex.php%2Farchive%2Fdrop-your-framework%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.thanksmister.com/index.php/archive/drop-your-framework/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Secure login using the EncryptedLocalStore in Adobe AIR</title>
		<link>http://www.thanksmister.com/index.php/archive/secure-login-using-the-encryptedlocalstore-in-adobe-air/</link>
		<comments>http://www.thanksmister.com/index.php/archive/secure-login-using-the-encryptedlocalstore-in-adobe-air/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 00:29:51 +0000</pubDate>
		<dc:creator>Mister</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[EncryptedLocalStored]]></category>

		<guid isPermaLink="false">http://thanksmister.com/?p=95</guid>
		<description><![CDATA[Adobe AIR has a quick and safe way to store encrypted user data when building applications. Data such as login and password can be persisted in the application using the EncryptedLocalStore available for AIR applications. To demonstrate this, I wrote a quick demo application that will store username and password after users login. When the [...]]]></description>
			<content:encoded><![CDATA[<p>Adobe AIR has a quick and safe way to store encrypted user data when building applications. Data such as login and password can be persisted in the application using the <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/data/EncryptedLocalStore.html">EncryptedLocalStore</a> available for AIR applications.  </p>
<p>To demonstrate this, I wrote a quick demo application that will store username and password after users login.  When the application is launched again, the same username and password will be retrieved from the EncryptedLocalStore and propagate the login and password text boxes.  User&#8217;s also  have the option to reset the data and store a new username and password, removing the stored data from the EcryptedLocalStore. </p>
<p>This can be handy when you want your application to do auto-login, using the existing stored information from the user&#8217;s previous session, and of course, the stored data is encrypted.</p>
<p><span id="more-95"></span></p>
<p>Example:</p>
<div class="codecolorer-container actionscript mac-classic" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:640px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br /></div></td><td><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span><br />
<span style="color: #66cc66;">&lt;</span>mx:WindowedApplication xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span style="color: #ff0000;">&quot;absolute&quot;</span> <br />
&nbsp; &nbsp; <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;410&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;260&quot;</span> creationComplete=<span style="color: #ff0000;">&quot;initComponent()&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>mx:Script<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span><span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">controls</span>.<span style="color: #006600;">Alert</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> initComponent<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">password</span>:ByteArray = EncryptedLocalStore.<span style="color: #006600;">getItem</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;password&quot;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">var</span> username:ByteArray = EncryptedLocalStore.<span style="color: #006600;">getItem</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;username&quot;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066CC;">try</span><span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">password</span>.<span style="color: #0066CC;">length</span> <span style="color: #66cc66;">&amp;&amp;</span> username.<span style="color: #0066CC;">length</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; passwordInput.<span style="color: #0066CC;">text</span> = &nbsp;<span style="color: #0066CC;">password</span>.<span style="color: #006600;">readUTFBytes</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">password</span>.<span style="color: #0066CC;">length</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nameInput.<span style="color: #0066CC;">text</span> = username.<span style="color: #006600;">readUTFBytes</span><span style="color: #66cc66;">&#40;</span>username.<span style="color: #0066CC;">length</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span> <span style="color: #0066CC;">catch</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:<span style="color: #0066CC;">Error</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>Alert.<span style="color: #0066CC;">show</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">message</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #66cc66;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onLogin<span style="color: #66cc66;">&#40;</span>event:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>nameInput.<span style="color: #0066CC;">text</span> == <span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">||</span> passwordInput.<span style="color: #0066CC;">text</span> == <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Alert.<span style="color: #0066CC;">show</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Please enter username and password&quot;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066CC;">try</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EncryptedLocalStore.<span style="color: #006600;">reset</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">var</span> bytes:ByteArray = <span style="color: #000000; font-weight: bold;">new</span> ByteArray<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bytes.<span style="color: #006600;">writeUTFBytes</span><span style="color: #66cc66;">&#40;</span>nameInput.<span style="color: #0066CC;">text</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EncryptedLocalStore.<span style="color: #006600;">setItem</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;username&quot;</span>, bytes<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bytes = <span style="color: #000000; font-weight: bold;">new</span> ByteArray<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bytes.<span style="color: #006600;">writeUTFBytes</span><span style="color: #66cc66;">&#40;</span>passwordInput.<span style="color: #0066CC;">text</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EncryptedLocalStore.<span style="color: #006600;">setItem</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;password&quot;</span>, bytes<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Alert.<span style="color: #0066CC;">show</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Writing username and password to local store.&quot;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span> <span style="color: #0066CC;">catch</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:<span style="color: #0066CC;">Error</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>Alert.<span style="color: #0066CC;">show</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Error writing store: &quot;</span> + <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">message</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onReset<span style="color: #66cc66;">&#40;</span>event:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; passwordInput.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">&quot;&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nameInput.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">&quot;&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nameInput.<span style="color: #0066CC;">setFocus</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EncryptedLocalStore.<span style="color: #006600;">reset</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onKeyDown</span><span style="color: #66cc66;">&#40;</span>event:KeyboardEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> event.<span style="color: #006600;">charCode</span> == Keyboard.<span style="color: #0066CC;">ENTER</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; onLogin<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>mx:Script<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>mx:Canvas <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;380&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;240&quot;</span> horizontalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> verticalCenter=<span style="color: #ff0000;">&quot;0&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>mx:VBox verticalAlign=<span style="color: #ff0000;">&quot;middle&quot;</span> horizontalAlign=<span style="color: #ff0000;">&quot;left&quot;</span> verticalGap=<span style="color: #ff0000;">&quot;0&quot;</span> horizontalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> bottom=<span style="color: #ff0000;">&quot;142&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>mx:Label id=<span style="color: #ff0000;">&quot;userText&quot;</span> <span style="color: #0066CC;">text</span>=<span style="color: #ff0000;">&quot;username&quot;</span> &nbsp;creationComplete=<span style="color: #ff0000;">&quot;nameInput.setFocus()&quot;</span><span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>mx:TextInput id=<span style="color: #ff0000;">&quot;nameInput&quot;</span> creationComplete=<span style="color: #ff0000;">&quot;{nameInput.setFocus()}&quot;</span> keyDown=<span style="color: #ff0000;">&quot;onKeyDown(event)&quot;</span><span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>mx:VBox<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>mx:VBox verticalAlign=<span style="color: #ff0000;">&quot;middle&quot;</span> horizontalAlign=<span style="color: #ff0000;">&quot;left&quot;</span> verticalGap=<span style="color: #ff0000;">&quot;0&quot;</span> horizontalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> bottom=<span style="color: #ff0000;">&quot;95&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>mx:Label <span style="color: #0066CC;">text</span>=<span style="color: #ff0000;">&quot;password&quot;</span> &nbsp;<span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>mx:TextInput id=<span style="color: #ff0000;">&quot;passwordInput&quot;</span> displayAsPassword=<span style="color: #ff0000;">&quot;true&quot;</span> keyDown=<span style="color: #ff0000;">&quot;onKeyDown(event)&quot;</span><span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>mx:VBox<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>mx:ControlBar &nbsp;bottom=<span style="color: #ff0000;">&quot;16&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;161&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;35&quot;</span> horizontalCenter=<span style="color: #ff0000;">&quot;0&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>mx:<span style="color: #0066CC;">Button</span> id=<span style="color: #ff0000;">&quot;submitButton&quot;</span> label=<span style="color: #ff0000;">&quot;submit&quot;</span> click=<span style="color: #ff0000;">&quot;onLogin(event)&quot;</span> &nbsp;textAlign=<span style="color: #ff0000;">&quot;center&quot;</span> <span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>mx:<span style="color: #0066CC;">Button</span> id=<span style="color: #ff0000;">&quot;resetButton&quot;</span> label=<span style="color: #ff0000;">&quot;reset&quot;</span> click=<span style="color: #ff0000;">&quot;onReset(event)&quot;</span> textAlign=<span style="color: #ff0000;">&quot;center&quot;</span><span style="color: #66cc66;">/&gt;</span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>mx:ControlBar<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>mx:Canvas<span style="color: #66cc66;">&gt;</span><br />
<span style="color: #66cc66;">&lt;/</span>mx:WindowedApplication<span style="color: #66cc66;">&gt;</span></div></td></tr></tbody></table></div>
<p>To use the example code, just create a new AIR application in Flex Builder and paste the code into your main MXML file.</p>
<p>-Mister</p>
<p><map name='google_ad_map_95_1452acacd61817fb'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/95?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_95_1452acacd61817fb' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=95&amp;url= http%3A%2F%2Fwww.thanksmister.com%2Findex.php%2Farchive%2Fsecure-login-using-the-encryptedlocalstore-in-adobe-air%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.thanksmister.com/index.php/archive/secure-login-using-the-encryptedlocalstore-in-adobe-air/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>FITC Hollywood 2007</title>
		<link>http://www.thanksmister.com/index.php/archive/fitc-hollywood-2007/</link>
		<comments>http://www.thanksmister.com/index.php/archive/fitc-hollywood-2007/#comments</comments>
		<pubDate>Tue, 23 Oct 2007 00:34:34 +0000</pubDate>
		<dc:creator>Mister</dc:creator>
				<category><![CDATA[Flex News]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[FITC]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[JSON]]></category>

		<guid isPermaLink="false">http://thanksmister.com/?p=77</guid>
		<description><![CDATA[I was asked to speak at this years FITC conference located at Universal Studios, Hollywood.&#160;&#160; I will be co-presenting with my co-worker Larry Drolet.&#160; Our presentation is called &#8220;Concepts on AIR&#8221;.&#160; We will demonstrated some basic AIR concepts such as system chrome, drag and drop, and system notification.&#160;&#160; We will also present some pretty cool [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://thanksmister.com/images/FITCHollywood2007_F724/FITC__spkr125x1753.jpg" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 15px 0px 0px; border-right-width: 0px" height="240" src="http://thanksmister.com/images/FITCHollywood2007_F724/FITC__spkr125x175_thumb1.jpg" width="171" align="left" border="0"></a>I was asked to speak at this years <a href="http://www.fitc.ca/event_detail.cfm?festival_id=21" target="_blank">FITC</a> conference located at Universal Studios, Hollywood.&nbsp;&nbsp; I will be co-presenting with my co-worker Larry Drolet.&nbsp; Our presentation is called &#8220;Concepts on AIR&#8221;.&nbsp; We will demonstrated some basic AIR concepts such as system chrome, drag and drop, and system notification.&nbsp;&nbsp; We will also present some pretty cool sample applications.&nbsp;&nbsp; One is called Oxygen, a file management application that manages the Xdrive storage service platform for individual accounts.&nbsp;&nbsp;&nbsp; </p>
<p>Oxygen is build with Flex and AIR technology and uses the open Xdrive API.&nbsp; Xdrive will soon release version 1.2 of the JSON API. Oxygen is running this latest JSON release. Oxygen is a great concept piece as it shows how easy it is to take your web-based Flex applications and port them to the desktop.&nbsp; Oxygen shares about 90% of the same code as Bluestring (Bluestring.com). </p>
<p>Another cool application is called Wormhole.&nbsp; Its basically a mashup with AIM and Xdrive API&#8217;s.&nbsp; This application really takes advantage of the system chrome features in Flex and offers a very geeked out way to share files (think Stargate).&nbsp;&nbsp; If you are in the Los Angeles area and have some time, stop by the FITC conference and check out all of the presentations.&nbsp;My presentation description can be found <a href="http://www.fitc.ca/event_detail.cfm?festival_id=21" target="_blank">here</a>&nbsp;along with my&nbsp;speaker profile.&nbsp;&nbsp; The presentation slides&nbsp;are&nbsp;listed&nbsp;below using <a href="http://share.adobe.com" target="_blank">Adobe Share</a>:</p>
<p> <object style="width: 462px; height: 419px" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0" height="419" width="462" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="_cx" value="12224"><param name="_cy" value="11086"><param name="FlashVars" value=""><param name="Movie" value="https://share.adobe.com/adc/flex/mpt.swf"><param name="Src" value="https://share.adobe.com/adc/flex/mpt.swf"><param name="WMode" value="Transparent"><param name="Play" value="0"><param name="Loop" value="-1"><param name="Quality" value="High"><param name="SAlign" value="LT"><param name="Menu" value="-1"><param name="Base" value=""><param name="AllowScriptAccess" value=""><param name="Scale" value="NoScale"><param name="DeviceFont" value="0"><param name="EmbedMovie" value="0"><param name="BGColor" value=""><param name="SWRemote" value=""><param name="MovieData" value=""><param name="SeamlessTabbing" value="1"><param name="Profile" value="-1"><param name="ProfileAddress" value=""><param name="ProfilePort" value="544108397"><param name="AllowNetworking" value="all"><param name="AllowFullScreen" value="false"><embed src="https://share.adobe.com/adc/flex/mpt.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="440" height="410" wmode="transparent" flashvars="ext=pdf&amp;docId=5aaae5d5-87d7-11dc-a192-89dc8d5583a0"></embed></object>
<p>- Mister</p>
<p><map name='google_ad_map_77_1452acacd61817fb'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/77?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_77_1452acacd61817fb' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=77&amp;url= http%3A%2F%2Fwww.thanksmister.com%2Findex.php%2Farchive%2Ffitc-hollywood-2007%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.thanksmister.com/index.php/archive/fitc-hollywood-2007/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adobe Share</title>
		<link>http://www.thanksmister.com/index.php/archive/adobe-share-why/</link>
		<comments>http://www.thanksmister.com/index.php/archive/adobe-share-why/#comments</comments>
		<pubDate>Sat, 13 Oct 2007 15:26:29 +0000</pubDate>
		<dc:creator>Mister</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex News]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Share]]></category>

		<guid isPermaLink="false">http://thanksmister.com/?p=76</guid>
		<description><![CDATA[Adobe recently launched a new beta application called Share that allows you to upload and share files.&#160; You can share file to a rostered list, the URL to the file, or embed the file on your web page (as I have done below).&#160;&#160;&#160;Adobe also&#160;has a Share API that uses simple REST-based protocol for developers to [...]]]></description>
			<content:encoded><![CDATA[<p>Adobe recently launched a new beta application called <a href="http://labs.adobe.com/technologies/share/" target="_blank">Share</a> that allows you to upload and share files.&nbsp; You can share file to a rostered list, the URL to the file, or embed the file on your web page (as I have done below).&nbsp;&nbsp;&nbsp;Adobe also&nbsp;has a <a href="http://labs.adobe.com/wiki/index.php/Share">Share API</a> that uses simple REST-based protocol for developers to build their own applications or mashups with using Share.&nbsp;&nbsp; I wasn&#8217;t clear from the documentation how the commercial pricing will work or if building an application for others to manage or share their files will count against your account or bandwidth.&nbsp; In fact, I am not sure what the pricing schema is for Share.&nbsp; </p>
<p></font></p>
<p>Another puzzling thought is why did Adobe develop share to begin with?&nbsp;&nbsp; You have a lot of existing vendors in the storage service provider arena already, in fact, you have many that use Adobe&#8217;s existing software to develop tools around storage and sharing.&nbsp; So it is strange that a software company decided to compete with companies that already use its software to provide the same service (<a href="http://www.bluestring.com" target="_blank">Bluestring</a> by AOL is one example).&nbsp;&nbsp; Does this mean that Adobe intends to become an online service for storage, document editing (<a href="http://www.adobe.com/special/buzzword/faq.html" target="_blank">Buzzword</a>) and media editing (<a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200702/022107Photobucket.html" target="_blank">Remix</a>&nbsp;and <a href="http://www.techcrunch.com/2007/09/07/adobes-online-image-editor-previewed/" target="_blank">Photoshop Express</a>)?&nbsp;&nbsp; </p>
<p>I mean, its cool that the applications Adobe&nbsp;builds use their own software (Flex, Flash, etc.), but when they start competing with other companies using also using Adobe software to provide&nbsp; similar services (aka, the bread and butter of those organizations), then I am wondering what will be the outcome? Is Adobe to&nbsp;become a huge conglomerate that not only provides services and software, but competes with its own food source for resources? What&#8217;s next, Adobe phones?&nbsp; Of course I am joking.&nbsp; I love Adobe and I love their products.&nbsp; I guess as&nbsp;Flex developer, I&#8217;m just comfortable with Adobe providng me with the tools to create applications and not competing with the tools I create. &nbsp;I could totally be misreading this move by Adobe, which is most likely the case (I say this so that a big black panel&nbsp;van with tinted windows&nbsp;doen&#8217;t pull up beside me one day and take me away). </p>
<p>Well, time will tell for sure.&nbsp; The storage business is extremely expensive (bandwidth,&nbsp;banks of servers)&nbsp;and there&nbsp;are a lot of established companies already out there with storage and sharing services that offer more space and possibly a lower cost (<a href="http://xdrive.com" target="_blank">Xdrive</a>, <a href="http://box.net" target="_blank">Box</a>, <a href="http://mozy.com" target="_blank">Mozy</a>, <a href="http://bluestring.com" target="_blank">Bluestring</a>, <a href="http://aws.amazon.com/s3" target="_blank">Amazon S3</a>) with sharing capabilities and API&#8217;s.&nbsp; For now, the Share API looks to be a simple to use and easy service providing minimal sharing capabilities and less complexity than some other API&#8217;s.&nbsp; </p>
<p><map name='google_ad_map_76_1452acacd61817fb'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/76?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_76_1452acacd61817fb' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=76&amp;url= http%3A%2F%2Fwww.thanksmister.com%2Findex.php%2Farchive%2Fadobe-share-why%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.thanksmister.com/index.php/archive/adobe-share-why/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Flash Lite 2.1 and T-Mobile Dash</title>
		<link>http://www.thanksmister.com/index.php/archive/flash-lite-21-and-t-mobile-dash/</link>
		<comments>http://www.thanksmister.com/index.php/archive/flash-lite-21-and-t-mobile-dash/#comments</comments>
		<pubDate>Thu, 04 Jan 2007 17:27:23 +0000</pubDate>
		<dc:creator>Mister</dc:creator>
				<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[T-Mobile]]></category>

		<guid isPermaLink="false">http://thanksmister.com/?p=38</guid>
		<description><![CDATA[Happy New Years!&#160; I just purchased a new phone, the T-Mobile Dash.&#160; The phone uses the Windows Mobile 5, Smart Phone edition.&#160;&#160;&#160; I love this phone, it has a great user interface, feels great in the hand, and it does a fine job with Internet, messaging, and mail services.&#160;&#160; &#160; The Dash also allowed me [...]]]></description>
			<content:encoded><![CDATA[<p>Happy New Years!&nbsp; I just purchased a new phone, the T-Mobile Dash.&nbsp; The phone uses the Windows Mobile 5, Smart Phone edition.&nbsp;&nbsp;&nbsp; I love this phone, it has a great user interface, feels great in the hand, and it does a fine job with Internet, messaging, and mail services.&nbsp;&nbsp; </p>
<p><a href="http://thanksmister.com/images/FlashLite2.1andTMobileDash_83ED/dash1.jpg" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="240" src="http://thanksmister.com/images/FlashLite2.1andTMobileDash_83ED/dash.jpg" width="137" border="0"></a>&nbsp;</p>
<p>The Dash also allowed me to install the new <a href="http://www.adobe.com/products/flashlite/productinfo/features/">Flash Lite 2.1</a> Player and SDK.&nbsp;&nbsp;&nbsp; I only wish that Adobe would include some means to play FLV files on mobile devices.&nbsp; You see all the chatter about the Adobe Flash Lite player on the web, and its mostly about how to see Google&nbsp;and YouTube videos on your mobile device.&nbsp; Providing FLV ability would be a huge boost to Flash Lite on mobile devices.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I would also like to see some type of file upload ability with the mobile player, maybe next Flash Lite 3?&nbsp;&nbsp;&nbsp; </p>
<p><map name='google_ad_map_38_1452acacd61817fb'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/38?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_38_1452acacd61817fb' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=38&amp;url= http%3A%2F%2Fwww.thanksmister.com%2Findex.php%2Farchive%2Fflash-lite-21-and-t-mobile-dash%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.thanksmister.com/index.php/archive/flash-lite-21-and-t-mobile-dash/feed/</wfw:commentRss>
		<slash:comments>52</slash:comments>
		</item>
	</channel>
</rss>
