<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

			<channel>
			<title>Jeffry Houser&apos;s Blog - AIR</title>
			<link>http://www.jeffryhouser.com/index.cfm</link>
			<description>Jeffry Houser&apos;s Blog</description>
			<language>en-us</language>
			<pubDate>Sat, 31 Jul 2010 12:13:44 -0400</pubDate>
			<lastBuildDate>Tue, 20 Jul 2010 21:31:00 -0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			
			<managingEditor>&#106;&#104;&#98;&#108;&#111;&#103;&#64;&#102;&#97;&#114;&#99;&#114;&#121;&#102;&#108;&#121;&#46;&#99;&#111;&#109;</managingEditor>
			<webMaster>&#106;&#104;&#98;&#108;&#111;&#103;&#64;&#102;&#97;&#114;&#99;&#114;&#121;&#102;&#108;&#121;&#46;&#99;&#111;&#109;</webMaster>
			<itunes:subtitle></itunes:subtitle>
			<itunes:summary></itunes:summary>
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords></itunes:keywords>
			<itunes:author>Jeffry Houser</itunes:author>
			<itunes:owner>
				<itunes:email>jhblog@farcryfly.com</itunes:email>
				<itunes:name>Jeffry Houser</itunes:name>
			</itunes:owner>
			<itunes:image href="" />
			<image>
				<url></url>
				<title>Jeffry Houser&apos;s Blog</title>
				<link>http://www.jeffryhouser.com/index.cfm</link>
			</image>
			<itunes:explicit>no</itunes:explicit>
			
			<item>
				<title>What are some Open Source UI Testing Tools in Flex?</title>
				<link>http://www.jeffryhouser.com/index.cfm/2010/7/20/What-are-some-Open-Source-UI-Testing-Tools-in-Flex</link>
				<description>
				
				This question comes in from &quot;P&quot; and I&apos;m kind of stuck to give him an answer. 

&lt;blockquote&gt;
I need to implement TDD in our flex application and condition is that we need to use a open source. My application is primarily has drag and drop functionality.  I tried and analyzed several Test automation tools such as FlexMonkey, webdriver etc. they work fine till some extent.But they fail to recognize drag and drop actions and customcomponents. 

Basic problem is that all Automated Testing tools identifies &apos;id&apos; to perform any action. And in case of drag and drop all ids are generated on runtime Can you please suggest me any tool which can help or any change in my code which can help.
&lt;/blockquote&gt;

I&apos;m at a bit of a loss.  Obviously from P&apos;s question he needs a UI Testing tool; and FlexMonkey is the most well known in the Flex world.  But, it wouldn&apos;t work for him.

I said that to get FlexMonkey to work with custom components, he may need to create a custom automation delegate and recompile Flex Monkey.  But, I could never get that to work myself and eventually had to put it aside to focus on other things.

 So, dear readers, what would you suggest?  Are there other options out there?

&lt;hr&gt;

 I do like fielding questions from the audience, and have been doing a lot of that over on &lt;a href=&quot;http://stackoverflow.com/questions/tagged?tagnames=flex&amp;sort=newest&amp;pagesize=15&quot;&gt;Stack Overflow&lt;/a&gt; and the &lt;a href=&quot;http://www.flextras.com/blog/index.cfm/Flextras-Friday-Lunch&quot;&gt;Flextras Friday Lunch Podcast&lt;/a&gt;.  

If you have questions feel free to &lt;A href=&quot;http://www.jeffryhouser.com/contact.cfm&quot;&gt;ask me privately&lt;/a&gt; or stop by a &lt;A href=&quot;http://www.meetup.com/flextras&quot;&gt;Flextras Friday Lunch session&lt;/a&gt;.

You can get personal, confidential help from me [with screen sharing] via &lt;a href=&quot;http://www.asktheflexpert.com&quot;&gt;www.AskTheFlexpert.com&lt;/a&gt;.  

You can also fine me at &lt;A href=&quot;http://www.eventbrite.com/event/680816340/360flexhelpsell/235431565&quot;&gt;360|Flex in DC&lt;/a&gt; this September. 
				</description>
				
				<category>Flex</category>				
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Tue, 20 Jul 2010 21:31:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2010/7/20/What-are-some-Open-Source-UI-Testing-Tools-in-Flex</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>360|Flex comes to Washington DC in September</title>
				<link>http://www.jeffryhouser.com/index.cfm/2010/6/23/360Flex-comes-to-DC</link>
				<description>
				
				&lt;img src=&quot;http://www.jeffryhouser.com/images/washington-monument-address.jpg&quot; align=&quot;left&quot; style=&quot;padding :4px&quot;&gt;

 In my 8th grade year book we had the opportunity to write biographies for each other.  Most of them were slightly humorous; and many had us dying in weird and bizarre ways.  What happened to me?  

 After replacing much of my body parts with computer hardware, I electrocuted myself during a failed world takeover by falling into the reflection pool between the Washington Monument and Lincoln Memorial.  

 I don&apos;t want to give away any spoilers, but I strongly recommend you make a trip to &lt;a href=&quot;http://www.360flex.com/&quot;&gt;360|Flex DC&lt;/a&gt; this September to welcome in my new world order.  There will be Zombies involved.  Thank you Brian Nolan.  

 &lt;a href=&quot;http://www.360flex.com&quot;&gt;360|Flex&lt;/a&gt;, if you didn&apos;t know, is my favorite Flex conference, and it will land in DC on September 19th.  

 You can &lt;a href=&quot;http://www.eventbrite.com/event/680816340/360flexhelpsell/235431565&quot;&gt;register here&lt;/a&gt; or try to respond to their &lt;a href=&quot;http://www.360flex.com/blog/2010/06/360flex-call-for-papers-now-open/&quot;&gt;call for papers&lt;/a&gt; and get yourself a presentation spot.

Note: Image stole from &lt;a href=&quot;http://www.visitingdc.com/memorial/washington-monument-address.htm&quot;&gt;http://www.visitingdc.com/memorial/washington-monument-address.htm&lt;/a&gt; 
				</description>
				
				<category>Writing and Presenting</category>				
				
				<category>Flex</category>				
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Wed, 23 Jun 2010 20:04:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2010/6/23/360Flex-comes-to-DC</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>How do I convert a URLpath to SysFilePath if I have the file&apos;s URL?</title>
				<link>http://www.jeffryhouser.com/index.cfm/2009/10/8/How-do-I-convert-a-URLpath-to-SysFilePath-if-I-have-the-files-URL</link>
				<description>
				
				I&apos;m in a writing mood, so decided to tackle this question:

&lt;blockquote&gt;
One of your pages talks about how to get a/the filepath from a URL path; so if I know the URL where a file is, can I obtain the (absolute) path, on the server, where this file is? I will gladly supply more details, I just now would like to know if this is doable, in general. thanx!!
&lt;/blockquote&gt;

 This is a hard question to address.  First, I don&apos;t intimately remember all my 560 blog posts, and the user did not let me know which one he was referring to.  Second, I am not aware which technology the user is referring to.  Does he want an answer for Flex?  Or AIR?  Or ColdFusion?

 I decided to tackle answers in all three technologies.  Assuming you have a URL, how do you get the system path to the file?  

 In CF, I believe &lt;a href=&quot;http://www.cfquickdocs.com/?sourceid=cfQDSearch1.03&amp;getDoc=expandpath#ExpandPath&quot;&gt;expandPath&lt;/a&gt; should give you the absolute file path.  Just strip out the domain name of the URL before calling it.
 
 In Flex I do not believe you can access the file path of the server, nor the client.  The security sandbox prevents such access.  

 In AIR, a URL to a local file is also the absolute path; but you wouldn&apos;t have access to the absolute path on the server.

 So, in summary, for ColdFusion use the expandPath function. In Flex or AIR, you need a convoluted work around, such as a server side service or a desktop server piece like Merapi.

 You can always ask me your question &lt;A href=&quot;http://www.jeffryhouser.com/contact.cfm&quot;&gt;here&lt;/a&gt;, or stop by a &lt;A href=&quot;http://www.flextras.com/blog/index.cfm/Flextras-Friday-Lunch&quot;&gt;Flextras Friday Lunch session&lt;/a&gt; and ask me in person. 
				</description>
				
				<category>AIR</category>				
				
				<category>Flex</category>				
				
				<category>Professional</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 08 Oct 2009 09:00:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2009/10/8/How-do-I-convert-a-URLpath-to-SysFilePath-if-I-have-the-files-URL</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>Air on Netbooks</title>
				<link>http://www.jeffryhouser.com/index.cfm/2009/3/31/Air-on-Netbooks</link>
				<description>
				
				This question comes in from Tomas about running AIR on Netbooks.  

&lt;code&gt;
I wanted to know if you personally or through a third-party had experience of Adobe Air running on a netbook. I don&apos;t have one of those close to me and wanted to know if it was worth it. At least the resolution is good enough for my app.
&lt;/code&gt;

 Can anyone answer Tomas&apos;s question?  

 I have not had any experience w/ AIR on Netbooks.  Although, I know of no reason why it wouldn&apos;t work, assuming you have a supported operating system.  I suppose there could be potential performance issues.

I love answering questions from readers or podcast listeners, so feel free to &lt;A href=&quot;http://www.jeffryhouser.com/contact.cfm&quot;&gt;send them in&lt;/a&gt;.

 Lately my writing energies have been pulled between the &lt;A href=&quot;http://www.jeffryhouser.com/index.cfm/2009/2/3/Join-Jeffry-Houser-for-a-Live-Question-and-Answer--Every-Friday-in-February&quot;&gt;Flextras Friday Lunch&lt;/a&gt; and &lt;a href=&quot;http://www.theflexshow.com&quot;&gt;The Flex Show&lt;/a&gt; podcast.  If you have questions and want to nail me on them live, drop by the Flextras Friday Lunch.  Every Friday at 1pm EST. 
				</description>
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Tue, 31 Mar 2009 11:00:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2009/3/31/Air-on-Netbooks</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>How do I uninstall AIR Applications Programatically?</title>
				<link>http://www.jeffryhouser.com/index.cfm/2009/3/17/How-do-I-uninstall-AIR-Applications-Programatically</link>
				<description>
				
				This questions comes in from Krunal and he asks about installing / uninstalling an AIR application from another program.

&lt;blockquote&gt;
Can I install / uninstall the air application programatically?
Suppose i have a X air application and application have a facility to install / uninstall the Y (air application). Is it possible?
&lt;/blockquote&gt;

 If I understand Krunal correctly, he has an AIR application that he installs as part of another larger installer.  When he creates an uninstall routine for the larger program, he wants to uninstall the AIR application too.

 To do this &quot;Formally&quot; I think you need to sign up for Adobe&apos;s the &lt;a href=&quot;http://www.adobe.com/products/air/runtime_distribution1.html&quot;&gt;Runtime Distribution&lt;/a&gt; program for AIR.  I believe once you&apos;re in they&apos;ll give you access / information on how to do that.  

 I believe that the program gives you access to install AIR applications and the AIR runtime in invisible mode, but I could be wrong about that.

 All that said, I haven&apos;t looked specifically into how AIR applications are uninstalled.  I suspect that there is just an executable that you can launch from your custom uninstaller.  

 If Krunal wants to bundle two different AIR applications together using the default AIR installer / uninstaller, I&apos;m unsure how that would work.

 That said, I&apos;m hard at work on the &lt;A href=&quot;http://www.flextras.com/?C=103&quot;&gt;Flextras&lt;/a&gt; AutocompleteComboBox and have been blogging less.  There is now also a &lt;A href=&quot;http://www.flextras.com/blog/?C=103&quot;&gt;Flextras Blog&lt;/a&gt; and I have been holding weekly live &lt;A href=&quot;http://www.jeffryhouser.com/index.cfm?mode=entry&amp;entry=392E3356-65B3-D59C-4A4A34DE9D5F25E5&quot;&gt;Q&amp;A / Demo meetings&lt;/a&gt;, every Friday at 1pm EST.  

 I love answering questions, so if you have one, feel free to &lt;a href=&quot;http://www.jeffryhouser.com/contact.cfm&quot;&gt;Ask away&lt;/a&gt;!  Or stop by one of the Flextras Friday Lunch demos and stump me in real time. 
				</description>
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Tue, 17 Mar 2009 09:51:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2009/3/17/How-do-I-uninstall-AIR-Applications-Programatically</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>How do I access a database directly from Flex?</title>
				<link>http://www.jeffryhouser.com/index.cfm/2009/1/20/How-do-I-access-a-database-directly-from-Flex</link>
				<description>
				
				This question came from a reader with no name.  

&lt;code&gt;
I want to use the remote connection in adobe air (Action Script) to connect the database ( oracle, SQL Server etc...)
&lt;/code&gt;

My short is answer is that you can&apos;t do this.  

For a longer answer, Most people use some form of middleware; such as ColdFusion, Java, PHP, Ruby, etc... .  

 So, build a service in your language of choice to access the database; then use RemoteObject from your AIR app to access those services.  I&apos;m not sure if AIR will have crossdomain.xml issues or not. 

 There was an open source project around at one point which used sockets in the Flash player to run SQL directly against a database.  I never got the impression it was production ready, though.  And I can&apos;t find it in Google right now.  

 I love the questions that are easy to answer.  &lt;A href=&quot;http://www.jeffryhouser.com/contact.cfm&quot;&gt;Do you have one to ask me?&lt;/a&gt; 
				</description>
				
				<category>Flex</category>				
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Tue, 20 Jan 2009 11:00:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2009/1/20/How-do-I-access-a-database-directly-from-Flex</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>How do I make an AIR Window be always on top?</title>
				<link>http://www.jeffryhouser.com/index.cfm/2008/12/11/How-do-I-make-an-AIR-Window-be-always-on-top</link>
				<description>
				
				This question comes in from Martijn:

&lt;code&gt;
hi, thanks for posting that stuff about minimizing the adobe air window :) I wondered if you also know if air supports the native window to be &quot;always on top&quot; on your desktop. I can&apos;t find anything about the subject. Thanks, Martijn
&lt;/code&gt;

 I&apos;ve done some experiments with this in the past, but couldn&apos;t find my old code.  The &lt;A href=&quot;http://livedocs.adobe.com/flex/3/langref/mx/core/WindowedApplication.html&quot;&gt;WindowsApplication&lt;/a&gt; tag has an &lt;A href=&quot;http://livedocs.adobe.com/flex/3/langref/mx/core/WindowedApplication.html#alwaysInFront&quot;&gt;alwaysInFront&lt;/a&gt; property.

 To make an app always stay on top, just do this: 

&lt;code&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:WindowedApplication xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot; alwaysInFront=&quot;true&quot;&gt;
&lt;/mx:WindowedApplication&gt;
&lt;/code&gt;

 In my experiments, I was testing out AIR to run in Kiosk mode application, so I was also using alwaysInFront with a full screen.  You can make things full screen by doing this:


&lt;code&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:WindowedApplication xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot; alwaysInFront=&quot;true&quot; 
applicationComplete=&quot;onApplicationComplete()&quot;&gt;
&lt;mx:Script&gt;&lt;![CDATA[
			
public function onApplicationComplete():void{
 this.stage.displayState = StageDisplayState.FULL_SCREEN;
}
]]&gt;&lt;/mx:Script&gt;
&lt;/mx:WindowedApplication&gt;

&lt;/code&gt;

Using the ApplicationComplete event, I trigger a function to run this in &quot;large&quot; mode.  It just sets the displayState of the stage into Full Screen.  You cannot run this code on CreationComplete because the Application stage object is not initialized before the ApplicationComplete event is triggered.

 Did I mention I love &lt;A href=&quot;http://www.jeffryhouser.com/contact.cfm&quot;&gt;answering questions&lt;/a&gt;?  You should feel free to ask away. 
				</description>
				
				<category>Flex</category>				
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Thu, 11 Dec 2008 11:00:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2008/12/11/How-do-I-make-an-AIR-Window-be-always-on-top</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>Will Adobe Open Screen Project bring Flash to Game Consoles?</title>
				<link>http://www.jeffryhouser.com/index.cfm/2008/5/1/Will-Adobe-Open-Screen-Project-bring-Flash-to-Game-Consoles</link>
				<description>
				
				Will the &lt;a href=&quot;http://www.adobe.com/aboutadobe/pressroom/pressreleases/200804/050108AdobeOSP.html&quot;&gt;Adobe&lt;/a&gt;     &lt;a href=&quot;http://www.adobe.com/go/openscreenproject&quot;&gt;Open&lt;/a&gt; &lt;a href=&quot;http://www.adobe.com/openscreenproject/developers/&quot;&gt;Screen&lt;/a&gt; &lt;A href=&quot;http://blogs.adobe.com/open/2008/04/the_open_screen_project.html&quot;&gt;Project&lt;/a&gt; bring the Flash player to game consoles?  Will I be able to create a Flash game and deploy it via &lt;A href=&quot;http://en.wikipedia.org/wiki/Wiiware&quot;&gt;Wiiware&lt;/a&gt;?

 The open screen project removes some licensing restrictions on delivering the Flash Player and also documents a porting layer for the API, making it easier to get the Flash Player working on your device.  I do not see Nintendo or Sony or Microsoft on the list of supporters, but I do think this move would make it easier to implement a version of the Flash Player for game consoles.  I wonder if a game developer would take the time to do that, or if it has to be done by the console maker?  

 The implications for a game developer to be able to develop something once and deploy it across consoles and computers consistently is huge.  Maybe my next company will be a gaming company.  I&apos;m still digesting what this will mean for the community as Flash and Flex Developers.  

 &lt;a href=&quot;http://blog.digitalbackcountry.com/&quot;&gt;Ryan&apos;s&lt;/a&gt; post on the topic also mentioned also mentioned  Adobe AIR for devices, which is a new concept for me.  &lt;a href=&quot;http://www.adobe.com/openscreenproject/developers/&quot;&gt;Kevin Lynch&apos;s&lt;/a&gt; video also mentions AIR for Devices. 
				</description>
				
				<category>Flex</category>				
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Thu, 01 May 2008 10:25:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2008/5/1/Will-Adobe-Open-Screen-Project-bring-Flash-to-Game-Consoles</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>Using AIR to launch other applications</title>
				<link>http://www.jeffryhouser.com/index.cfm/2008/4/22/Using-AIR-to-launch-other-applications</link>
				<description>
				
				Lets say you want to open an MS Word file from your web page.  You can just link to it using a normal HREF.  
Browser settings and the operating system will take care of the rest.  If it&apos;s a PDF, Reader will open.  Word will launch 
for a .doc file.  Excel for an excel sheet.  ( Or perhaps your browser independent equivalents  ).  

 How do you give the same functionality to an AIR Application?  This &lt;a href=&quot;http://tech.groups.yahoo.com/group/flexcoders/message/110242&quot;&gt;exact 
question&lt;/a&gt; came up on the Flex Coders list recently and the 
general concensus was that it could not be done.  That surprised me, because I figured you could do something very 
similiar to what you would do in a web page and let the operating system handle it.  This would (I assume) not violate 
ay security protocols inside AIR.  Am I right?  

 I played around with it and found one solution to the problem.  It&apos;s far from perfect, though.  I accomplished 
this using the &lt;A href=&quot;http://livedocs.adobe.com/flex/2/langref/flash/net/package.html&quot;&gt;NavigateToURL&lt;/a&gt; functionality.
The code is really simple, just a button to open the file:

&lt;code&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:WindowedApplication xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot;&gt;
&lt;mx:Script&gt;&lt;![CDATA[
 import flash.net.URLRequest;
		
 public function clickButton():void{
  var request : URLRequest = new URLRequest(&apos;C:\\projects\\test.doc&apos;);
  navigateToURL(request )	
 }
]]&gt;&lt;/mx:Script&gt;
	
 &lt;mx:Button click=&quot;clickButton()&quot; /&gt;
&lt;/mx:WindowedApplication&gt;
&lt;/code&gt;

Click the button, it creates a &lt;A href=&quot;http://livedocs.adobe.com/flex/2/langref/flash/net/URLRequest.html&quot;&gt;URL Request&lt;/a&gt; and then uses navigateToURL to launch it.  In my tests, this will launch 
a browser instance outside of AIR; and that browser instance will deal with the file, launching word, or a text editor, 
or whatever depending upon the file.  

 I can understand how, in some situations this would not be ideal.  Perhaps in AIR next we need a navigateToApplication? 
				</description>
				
				<category>Flex</category>				
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Tue, 22 Apr 2008 11:00:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2008/4/22/Using-AIR-to-launch-other-applications</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>How can I find the user&apos;s screen size in AIR?</title>
				<link>http://www.jeffryhouser.com/index.cfm/2008/4/15/How-can-I-find-the-users-screen-size-in-AIR</link>
				<description>
				
				Yesterday, someone posted to &lt;A href=&quot;http://tech.groups.yahoo.com/group/apollocoders/&quot;&gt;Apollo Coders&lt;/a&gt; to ask if they can find out the &lt;a href=&quot;http://tech.groups.yahoo.com/group/apollocoders/message/2683&quot;&gt;user&apos;s screen resolution&lt;/a&gt; in an AIR application.  The answer is yes, you can.  

 You can find this information out using the &lt;A href=&quot;http://livedocs.adobe.com/flex/2/langref/flash/system/Capabilities.html&quot;&gt;flash.system.Capabilities&lt;/a&gt; class.  You need to look at the screenResolutionX and screenResolutionY properties.  These are static properties on the Capabilities class, so you do not need to create an instance.

 The poster also asked if he could find the height and width of the current window.  This on was even easier to answer, because windows (and most UI controls ) have a height and width in the Flex framework.

 I can demonstrate both of these answers with a single code sample.  This code sample will size the application window to 60% of the screen width:

&lt;code&gt;
&lt;mx:WindowedApplication xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; 
	 preinitialize=&quot;preInitializeHandler()&quot;/&gt;
&lt;mx:Script&gt;&lt;![CDATA[

import flash.system.Capabilities;
import mx.controls.Alert

private function preInitializeHandler():void{
 // set the width to 60% of the full screen 
 this.height = Capabilities.screenResolutionY * .6;
 this.width = Capabilities.screenResolutionX * .6;
 this.visible = true;
}

]]&gt;&lt;/mx:Script&gt;

&lt;/mx:WindowedApplication&gt;
&lt;/code&gt;


 This code is very similar to something I used in a Flex application for a client.  It runs code in the preinitialize event.  That code sets the height and width of the WindowedApplication to 60% of the screenResolution.  Then it makes the window visible.  ( I set the window to be invisible in the app.xml file )

 As a note, this should work in a Flex app too, but I haven&apos;t tried it.

 I got a busy week this week.  Thursday I&apos;m at a a Microsoft even in Hartford.  I understand they are giving out free software.  Friday I&apos;m down in NYC to do some podcast interviews at &lt;a href=&quot;http://www.flexcampwallstreet.com&quot;&gt;Flex Camp Wall Street&lt;/a&gt;. 
				</description>
				
				<category>Flex</category>				
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Tue, 15 Apr 2008 12:00:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2008/4/15/How-can-I-find-the-users-screen-size-in-AIR</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>Accessing command line arguments in AIR!</title>
				<link>http://www.jeffryhouser.com/index.cfm/2008/3/20/Accessing-command-line-arguments-in-AIR</link>
				<description>
				
				A question came up over on the &lt;A href=&quot;http://tech.groups.yahoo.com/group/apollocoders/&quot;&gt;Apollo Coders group &lt;/a&gt; about how to access command line arguments in an AIR application.  I know that there are other &lt;A href=&quot;http://www.mikechambers.com/blog/2007/05/13/capturing-command-line-arguments-in-an-apollo-application/&quot;&gt;explanations&lt;/a&gt; + &lt;A href=&quot;http://livedocs.adobe.com/labs/air/1/devappsflash/os_shell_03.html&quot;&gt;documentation &lt;/a&gt;out there on this topic, but I thought I&apos;d regurgitate what I have learned.

 In Flex Bulder create an AIR application. I named mine &quot;CommandLine&quot;, and the CommandLine.mxml looked like this:

&lt;code&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:WindowedApplication xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot;&gt;
&lt;/mx:WindowedApplication&gt;
&lt;/code&gt;

 It&apos;s an empty app that does nothing, as expected when it is first created.  This application will do the brilliant act of displaying the command line arguments using an alert.  So, let&apos;s add a script block and import the alert.

&lt;code&gt;
&lt;mx:Script&gt;
&lt;![CDATA[
 import mx.controls.Alert;
				
]]&gt;
&lt;/mx:Script&gt;
&lt;/code&gt;

 Arguments are attached the &lt;A href=&quot;http://livedocs.adobe.com/air/1/jslr/flash/events/InvokeEvent.html&quot;&gt;invokeEvent ckass&lt;/a&gt;.  So, at the top level (WindowedApplication), let&apos;s listen to the invoke event:

&lt;code&gt;
&lt;mx:WindowedApplication xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot;  invoke=&quot;onInvoke(event)&quot;&gt;
&lt;/code&gt;

And we&apos;ll need to write an onInvoke function inside our script block:

&lt;code&gt;
private function onInvoke(event:InvokeEvent):void{
 Alert.show(event.arguments.toString());
}
&lt;/code&gt;

 This function is named onInvoke.  It accepts the InvokeEvent as an argument.  The InvokeEvent has a property named arguments.  Arguments is an array.  This method converts it to a string and displays it.  

 Run the app and you&apos;ll see an empty alert box.  Let&apos;s add some arguments.  In Flex Builder, if you select the play drop down and go to &quot;run...&quot;.  The menu will look something like this:

&lt;img src=&quot;http://www.jeffryhouser.com/images//AIRCommandLine-02.jpg&quot;&gt;

 And it will bring up this configuration screen:

&lt;img src=&quot;http://www.jeffryhouser.com/images//AIRCommandLine-03.jpg&quot;&gt;

 You&apos;ll notice the config screen has a place for command line arguments.  In this situation I typed test=test, test2=test1 .  So far as Flex is concerned, Command line arguments are separated by a space; so I get two command line arguments: &quot;test=test,&quot; and &quot;test2=test1&quot;.  

 A few things that you might want to be aware of:

&lt;ul&gt;
&lt;li&gt;The invoke event is fired every time the application is launched, either by double clicking a shortcut or by double clicking the .exe file (or whatever your preferred method of choice is for launching an application).  It does not matter if the application is already loaded, the invoke event will be re-run.  You may want to write logic to prevent the app from initializing the command line arguments twice.  &lt;/li&gt;
&lt;li&gt;I&apos;m not sure how to add command line arguments to the AIR Application shortcuts as part of the AIR installation process.  Does anyone know?  In my situation, the AIR app is being launched by another application, so that application handles creating and passing the command line arguments.&lt;/li&gt;
&lt;li&gt;In it&apos;s current form, there is no concept of named arguments.  So, the arguments in my above example are &quot;Test=test&quot;.  I do not have an argument named &quot;test&quot; with a value &quot;test&quot;.  I bet you could write a parser using &lt;a href=&quot;http://livedocs.adobe.com/flex/2/langref/RegExp.html&quot;&gt;regex&lt;/a&gt;  and a &lt;a href=&quot;http://livedocs.adobe.com/flex/2/langref/flash/utils/Dictionary.html&quot;&gt;Dictionary &lt;/a&gt; to generate your named arguments.  Maybe I&apos;ll experiment with this at some future time.&lt;/li&gt;
&lt;/ul&gt;

 The link I saved to the &lt;a href=&quot;http://tech.groups.yahoo.com/group/apollocoders/message/2315&quot;&gt;original thread&lt;/a&gt; is here although it does not appear to be working at the time of this writing.  Maybe I got the link wrong.  I currently have 11 things on my list of &quot;writing ideas&quot; and sometimes it takes a while for this stuff to peculate. 
				</description>
				
				<category>Flex</category>				
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Thu, 20 Mar 2008 11:45:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2008/3/20/Accessing-command-line-arguments-in-AIR</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>Upgrading to Flex Builder 3</title>
				<link>http://www.jeffryhouser.com/index.cfm/2008/3/11/Upgrading-to-Flex-Builder-3</link>
				<description>
				
				I just got the chance to upgrade from Flex Builder 3 Beta 3 to Flex Builder 3 Gold and along the way I also upgraded an application from AIR AIR 1.0 .  My upgrade this time was very smooth.  

 First, as always I strongly recommend reading the &lt;a href=&quot;http://www.adobe.com/support/documentation/en/flex/3/releasenotes_flex3_fb.html&quot;&gt;release &lt;/a&gt; &lt;A href=&quot;http://www.adobe.com/support/documentation/en/flex/3/releasenotes_flex3_sdk.html&quot;&gt;notes&lt;/a&gt; all the way through.  Do it twice.

 The Adobe Partner portal only has the stand alone version, so it took a little searching to find the &lt;A href=&quot;https://www.adobe.com/cfusion/tdrc/index.cfm?product=flex%5Feclipse&quot;&gt;plug in version&lt;/a&gt;.  I&apos;m not sure why plug in and stand alone are not on the same page of the public site.

 This time I actually used the &lt;A href=&quot;http://www.adobe.com/support/documentation/en/flex/3/releasenotes_flex3_fb.html#clean_workspace&quot;&gt;-clean 
feature&lt;/a&gt; of eclipse to save all my previous work spaces.  I&apos;m glad I did; that was a brilliant move.  Saved me a ton of time since I have dozens of work spaces.

 My AIR application only needed one tweak to the -app.xml config file.  I had to change the descriptor from &quot;1.0M6&quot; to &quot;1.0&quot;.  I figured there would be a change like this along the lines, but I could not find it documented anywhere.  I created a new application file and visually compared the Beta 3 XML descriptor with the 1.0 descriptor.  

 All good stuff! 
				</description>
				
				<category>Flex</category>				
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Tue, 11 Mar 2008 11:00:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2008/3/11/Upgrading-to-Flex-Builder-3</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>Reviewing My 360Flex Survey Results</title>
				<link>http://www.jeffryhouser.com/index.cfm/2008/3/6/Reviewing-My-360Flex-Survey-Results</link>
				<description>
				
				The &lt;a href=&quot;http://www.360flex.com&quot;&gt;360Flex&lt;/a&gt; have posted the results of session surveys.  Here are &lt;A href=&quot;http://www.360conferences.com/surveyresponses/?attendeeID=1586396&quot;&gt;mine&lt;/a&gt;.  Based on a few other speakers I spoke to, I got a lot of responses (20 once you discount the joke review I filled out for my own session).  

 I thought my session went great, and was in a room with 40-50 people or so.  I felt I was able to facilitate a discussion with my attendees (as opposed to just lecturing them), which is what I aim for.  I was really worried about having to &quot;repeat the questions&quot;, which the &quot;&quot;signers&quot; asked me to do so they could relay to the hearing impaired attendee.  But, I think I did pretty good with that.

 A few comments that I felt were worthy of mention:

&lt;code&gt;
 Very nice personality; funny and easy to listen to.
&lt;/code&gt;

 This is a huge boost to my ego.  I don&apos;t usually think of myself as funny (although I can be sarcastic), but I&apos;m glad you were entertained.

&lt;code&gt;
 ...he was able to facilitate the audience for answering those he did not have knowledge on.

Good conversational communication style
&lt;/code&gt;

 This is the vibe I shoot for when presenting, so I&apos;m glad that at least two person &apos;got it&apos; and enjoyed it.

&lt;code&gt;
 He didn&apos;t think AIR was broady applicable
&lt;/code&gt;

 This is true, and I&apos;m not ashamed to say it.  In fact I did say it in the intro to my presentation.  I do not think AIR 1.0 is primed up for wide adoption.  The business case for AIR, as I see it, is that it makes it very easy to write &quot;Partially Connected&quot; applications.

&lt;code&gt;
 More for beginners.
&lt;/code&gt;

 I was very torn whether to tell John and Tom that my preso was a &quot;100&quot; level or &quot;200&quot; level.  I went with 200 level.  Maybe I shouldn&apos;t have.  I went with 200 because there is a lot of code that I just glaze over because it was not the focus of the presentation.  However, the beginning of my preso deals with things such as &quot;What is AIR and why do we care?&quot; and &quot;Why do we care about code reuse?&quot;  That is very intro stuff.  However, I made the audience answer those questions to make sure we were on the same page moving forward.  

&lt;code&gt;
 ppt skillz = -1
&lt;/code&gt;

 Oddly someone else said that the slides were useful.  The presentation was not about powerpoint, and I think I used it well enough to communicate what I needed to communicate.  I&apos;m fine with not being a powerpoint wizard.

&lt;code&gt;
He had a hard time answering alot of the questions. It seems like he was relatively new the Flex. I felt like the attendees wanted more answers than he was able to give.
&lt;/code&gt;
 
 This was sentiment echoed a couple times in the comments, and that surprised me. There was a question or two that I didn&apos;t have answers to.  I wish I remembered what they were.  I don&apos;t remember being totally clueless, though.  I&apos;d rather say &quot;I don&apos;t know&quot; than to BS an answer so I look like I know stuff.  

&lt;code&gt;
Was a little short
&lt;/code&gt;

 I find it hard to fill up fifty minutes worth of time.  80 minutes scares me.  I&apos;ve spoken to other presenters who have expressed chagrin about the 80 minutes presentations.  However, I also know many presenters who could fill up 3 hours without a second though.

 And for those that read this far, thank you!  Postcards for &lt;A href=&quot;http://www.theflexshow.com&quot;&gt;The Flex Show&lt;/a&gt; will be making appearances in the attendee swag bag at two separate Flex Camps:

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;A href=&quot;http://flexcampoklahomacity.pbwiki.com/FlexCampOklahomaCity&quot;&gt;Flex Camp Oklahoma City&lt;/a&gt;&lt;/strong&gt;: March 13th, 2008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;A href=&quot;http://www.flexcampwallstreet.com/&quot;&gt;Flex Camp Wall Street&lt;/strong&gt;&lt;/a&gt;: April 18th, 2008&lt;/li&gt;
&lt;/ul&gt;

 There is a chance (schedule permitting) that I&apos;ll be at Flex Camp Wall Street recording interviews for The Flex Show, although I&apos;m out of the office the day before it for a separate event, so I&apos;m not sure.  But Mike Labriola said he used to have my laptop model and may have some extra batteries I could &quot;acquire&quot; from him, so...  

 I need to figure out April&apos;s schedule.  Are you going to be at Flex Camp Wall Street?  Would you like to listen to me podcast (live) from Flex Camp Wall Street? 
				</description>
				
				<category>Writing and Presenting</category>				
				
				<category>Flex</category>				
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Thu, 06 Mar 2008 11:00:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2008/3/6/Reviewing-My-360Flex-Survey-Results</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>Local Access URLs in Adobe AIR</title>
				<link>http://www.jeffryhouser.com/index.cfm/2008/2/19/Local-Access-URLs-in-Adobe-AIR</link>
				<description>
				
				One of the benefits of Adobe AIR, over a browser based application, is that you can have access to the local file system.  &lt;a href=&quot;http://www.houseoffusion.com/groups/flex/thread.cfm/threadid:1578&quot;&gt;This question&lt;/a&gt; came up on the &lt;a href=&quot;http://www.houseoffusion.com/&quot;&gt;House of Fusion&lt;/a&gt; &lt;A href=&quot;http://www.houseoffusion.com/groups/flex/&quot;&gt;Flex Coders list&lt;/a&gt;; and I thought I&apos;d blog the answer.

 I truncated the original question a bit.

&lt;code&gt;
I&apos;ve got an Flex/AIR app which contains a SQLite db and some photos which will be included in the install package.
[cut]
I need to open the db file locally [without using a hard coded absolute path]

How might I go about referencing it this file so that it will work both in development, and installed? 
&lt;/code&gt;

 Adobe AIR offers two URL schemes for accessing the local file system.  &lt;A href=&quot;http://livedocs.adobe.com/labs/air/1/devappshtml/help.html?content=Filesystem_08.html&quot;&gt;Documentation is here&lt;/a&gt;.

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;app:/&lt;/strong&gt;: App URLs are relative to the application install directory.  This is what the poster would need to access the assets he was distributing with his application. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;app-storage:/&lt;/strong&gt;: The app-storage URL will get you to the application&apos;s storage directory.  On a Windows (XP) machine this is under &quot;Documents and Settings/username/applicationdata/&quot;&lt;/li&gt;
&lt;/ul&gt; 

 
 As an indirect correlation, if you need the absolute paths to the application install directory or the application root directory, you can get them using the &lt;A href=&quot;http://livedocs.adobe.com/apollo/1.0/aslr/flash/filesystem/File.html
&quot;&gt;File Class&lt;/a&gt;.

 Somewhere in your ActionScript code, just import the class:

&lt;code&gt;
import flash.filesystem.File;
&lt;/code&gt;

 Two static variables exist on the File class, applicationDirectory and applicationStorageDirectory.  This code saves them to local variables:

&lt;code&gt;
public var appDirectory : String  = File.applicationDirectory ;
public var storageDirectory : String  = File.applicationStorageDirectory ;
&lt;/code&gt;

 Since these are static properties you do not need to create an instance of the file class to access them.  I&apos;m not sure if one method is preferred over the other, as both seem easily transportable between systems and applications.

 On Wednesday the 20th, I&apos;ll be all over.  I&apos;ll be speaking to a business group at the &lt;A href=&quot;http://www.meridenchamber.com&quot;&gt;Meriden Connecticut Chamber of Commerce&lt;/a&gt; in the morning.  I&apos;m speaking as part of their Small Business Institute; and will be speaking on the differences between web sites, web applications, and Internet applications.  

 In the evening, I&apos;m off to the &lt;A href=&quot;http://www.bostoncfug.org/&quot;&gt;Boston User Group&lt;/a&gt; to speak on code reuse between Flex and AIR.  This will be my last time giving the presentation before heading off to &lt;a href=&quot;http://www.360flex.com&quot;&gt;360Flex&lt;/a&gt; in Atlanta.  Are you in Atlanta and want to get together sometime on Saturday -Wednesday let me know. 
				</description>
				
				<category>Flex</category>				
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Tue, 19 Feb 2008 11:00:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2008/2/19/Local-Access-URLs-in-Adobe-AIR</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			
			<item>
				<title>How was your Upgrade to Flex 3 Beta 3?</title>
				<link>http://www.jeffryhouser.com/index.cfm/2008/1/31/How-was-your-Upgrade-to-Flex-3-Beta-3</link>
				<description>
				
				&lt;img src=&quot;http://www.jeffryhouser.com/images//2034394938_9e36bcefe2.jpg&quot; width=&quot;250&quot; height=&quot;132&quot; align=&quot;right&quot;&gt;

 A few weeks ago I finally got to upgrade from Flex Builder 3 (Beta 2) to Flex Builder 3 (Beta 3).  I had an AIR application in the works, so along the way I 
also got a chance to upgrade the AIR runtime and SDK.  As with all upgrades, I strongly recommend reading the &lt;a href=&quot;http://labs.adobe.com/wiki/index.php/AIR:Release_Notes&quot;&gt;release notes&lt;/a&gt;.  Read them twice. 

 My software upgrade was not very smooth, unfortunately.  The first step was to uninstall Beta 2.  I opened up the windows control panel and uninstalled it.  However, that did not appear to do anything.  Any attempt to install Beta 3 would tell me that Beta 2 was still installed.  ( I don&apos;t remember the exact message ).  Eventually I opened up my eclipse directory and manually deleted everything that had com.adobe.* in the directory name.  After that process, the Beta 3 install would succesfully complete.  

 Once I got it installed, the code upgrade process was relatively smooth.  I had to change a few APIs on my AIR Application:

&lt;ul&gt;
&lt;li&gt;File.applicationResourceDirectory -&gt; File.applicationDirectory:  This was documented and had no issues.&lt;/li&gt;
&lt;li&gt;HTMLControl --&gt; HTMLLoader: this was documented and had no issues&lt;/li&gt;
&lt;li&gt;HTMLPDFCapability.STATUS_OK turns into PDFCapability.STATUS_OK  I couldn&apos;t find this change documented anywhere, but performed some searching of the documents and figured out what was going on.&lt;/li&gt;
&lt;/ul&gt;
 
 There are plenty of other API changes, but these were the only ones that affected me.  Be sure to read the &lt;a href=&quot;http://labs.adobe.com/wiki/index.php/AIR:Release_Notes&quot;&gt;release notes&lt;/a&gt; for a full list.

 One issue I had, that wouldn&apos;t cause a compiler error was that the URL schemes have changed regarding local file access.  The &quot;app-resource&quot; scheme was replaced with &quot;App&quot;.  In my code, the URLs to local files were always stored as strings; even a wrong URL path is still a valid string, so it makes sense the compiler wouldn&apos;t flag them.  I wonder if Flex could benefit from a &quot;compatibility analyzer&quot; like used to be in the ColdFusion Administrator?  I just used search and replace to address all those changes.  

 My good friend &lt;A href=&quot;http://thesaj.wordpress.com/&quot;&gt;Jason&lt;/a&gt; asked me a question about upgrading and licensing:

&lt;code&gt;
I decided to install Flex 3 Beta 3. Much to my chagrin, FB3-B3 considers my Serial number to be invalid? Have you encountered this? 
&lt;/code&gt;

 I experienced the same issue, although I couldn&apos;t find any documentation about it.  I assume that Flex Builder 3 has moved to a new version licensing scheme and the Flex Builder 2 serial numbers will no longer work.  &lt;a href=&quot;http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;articleId=9058878&amp;source=NLT_AM&amp;nlid=1&quot;&gt;A computer world article&lt;/a&gt; states that the AIR release will be next month (February), so I&apos;m expecting an official release soon.  Can you think of &lt;a href=&quot;http://www.360flex.org&quot;&gt;any events&lt;/a&gt; in February where Adobe could make a big announcement? 

 What problems did you have when upgrading your application? 
				</description>
				
				<category>Flex</category>				
				
				<category>Professional</category>				
				
				<category>AIR</category>				
				
				<pubDate>Thu, 31 Jan 2008 11:00:00 -0400</pubDate>
				<guid>http://www.jeffryhouser.com/index.cfm/2008/1/31/How-was-your-Upgrade-to-Flex-3-Beta-3</guid>
				<author>info@theflexshow.com (Jeffry Houser and John Wilker)</author>
				
				
			</item>
			</channel></rss>