<?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>h6 - HatSix &#187; Projects</title>
	<atom:link href="http://hat6.com/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://hat6.com</link>
	<description>Hat6 Web Application Engineering</description>
	<lastBuildDate>Wed, 23 Nov 2011 18:46:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>SeaFlex is now Seattle Web Application Developers</title>
		<link>http://hat6.com/2011/11/23/seaflex-is-now-seattle-web-application-developers/</link>
		<comments>http://hat6.com/2011/11/23/seaflex-is-now-seattle-web-application-developers/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 18:46:41 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://hat6.com/?p=136</guid>
		<description><![CDATA[Just posting as previous domain names are going away, want to have some sort of results on google if anyone looks up SeaFlex. We&#8217;re all still around, we meet at the same time, we just have more HTML/JS in our diet New meetup group is here: http://www.meetup.com/Seattle-Web-App-Developers-Group/]]></description>
			<content:encoded><![CDATA[<p>Just posting as previous domain names are going away, want to have some sort of results on google if anyone looks up SeaFlex.</p>
<p>We&#8217;re all still around, we meet at the same time, we just have more HTML/JS in our diet <img src='http://hat6.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
New meetup group is here:<br />
<a href="http://www.meetup.com/Seattle-Web-App-Developers-Group/" title="Seattle Web App Developers">http://www.meetup.com/Seattle-Web-App-Developers-Group/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2011/11/23/seaflex-is-now-seattle-web-application-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Identifi 1.1 Released</title>
		<link>http://hat6.com/2011/10/10/identifi-1-1-released/</link>
		<comments>http://hat6.com/2011/10/10/identifi-1-1-released/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 06:23:11 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Identifi]]></category>

		<guid isPermaLink="false">http://hat6.com/?p=131</guid>
		<description><![CDATA[I&#8217;ve released 1.1 of the Identifi App. Check out the changes here: http://identifi.mobi/version-1-1-released/ Or download here: https://market.android.com/details?id=mobi.Identifi.app]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve released 1.1 of the Identifi App.  Check out the changes here:<br />
<a href="http://identifi.mobi/version-1-1-released/" title="Identifi 1.1">http://identifi.mobi/version-1-1-released/</a></p>
<p>Or download here:<br />
<a href="https://market.android.com/details?id=mobi.Identifi.app" title="Identifi Android App">https://market.android.com/details?id=mobi.Identifi.app</a></p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2011/10/10/identifi-1-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Note to Self: Running Node.js on Amazon EC2</title>
		<link>http://hat6.com/2011/04/17/running-node-js-on-amazon-ec2/</link>
		<comments>http://hat6.com/2011/04/17/running-node-js-on-amazon-ec2/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 17:28:31 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://hat6.com/?p=122</guid>
		<description><![CDATA[sudo yum groupinstall Development\ Libraries sudo yum groupinstall Development\ Tools wget latest from http://nodejs.org/#download tar xvfz node*.gz follow instructions here: Node JS Installation Install NPM: curl http://npmjs.org/install.sh &#124; sh Install Express: npm install express]]></description>
			<content:encoded><![CDATA[<ol>
<li>sudo yum groupinstall Development\ Libraries</li>
<li>sudo yum groupinstall Development\ Tools</li>
<li>wget latest from <a href="http://nodejs.org/#download">http://nodejs.org/#download</a></li>
<li>tar xvfz node*.gz</li>
<li>follow instructions here: <a href="https://github.com/joyent/node/wiki/Installation">Node JS Installation</a></li>
<li>Install NPM: curl http://npmjs.org/install.sh | sh</li>
<li>Install Express: npm install express</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2011/04/17/running-node-js-on-amazon-ec2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Note To Self: Simple DNS for Amazon EC2</title>
		<link>http://hat6.com/2011/04/17/simple-dns-for-amazon-ec2/</link>
		<comments>http://hat6.com/2011/04/17/simple-dns-for-amazon-ec2/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 15:25:56 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://hat6.com/?p=116</guid>
		<description><![CDATA[get an account at dyndns.com download ddclient from here. tar xvfz ddclient*.gz sudo cp ddclient /usr/bin sudo mkdir /etc/ddclient sudo nano /etc/ddclient/ddclient.conf generate conf here, paste into nano, update password sudo chmod u=rwx,go= /etc/ddclient/ddclient.conf sudo cp sample-etc_rc.d_init.d_ddclient.redhat /etc/init.d/ddclient chkconfig &#8211;add ddclient]]></description>
			<content:encoded><![CDATA[<ol>
<li>get an account at <a href="http://dyndns.com" target="_blank">dyndns.com</a></li>
<li>download ddclient from <a title="dyndns unix download" href="http://www.dyndns.com/support/clients/unix.html" target="_blank">here</a>.</li>
<li>tar xvfz ddclient*.gz</li>
<li>sudo cp ddclient /usr/bin</li>
<li>sudo mkdir /etc/ddclient</li>
<li>sudo nano /etc/ddclient/ddclient.conf</li>
<li>generate conf <a title="dyndns ddclient configuration generator" href="https://www.dyndns.com/support/tools/clientconfig.html" target="_blank">here</a>, paste into nano, update password</li>
<li>sudo chmod u=rwx,go= /etc/ddclient/ddclient.conf</li>
<li>sudo cp sample-etc_rc.d_init.d_ddclient.redhat /etc/init.d/ddclient</li>
<li>chkconfig &#8211;add ddclient</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2011/04/17/simple-dns-for-amazon-ec2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Jira on Amazon EC2 Linux AMI</title>
		<link>http://hat6.com/2011/04/05/installing-jira-on-amazon-ec2-linux-ami/</link>
		<comments>http://hat6.com/2011/04/05/installing-jira-on-amazon-ec2-linux-ami/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 05:19:01 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://hat6.com/?p=114</guid>
		<description><![CDATA[So, you think you want to install Jira on EC2? This might not help that much, it&#8217;s mostly a note to myself, but hopefully it&#8217;s packed full of goodies to help you out. OK, so first things first.. start up the Linux EBS Image on EC2. If you&#8217;re connecting on windows, you need to generate [...]]]></description>
			<content:encoded><![CDATA[<p>So, you think you want to install Jira on EC2? This might not help that much, it&#8217;s mostly a note to myself, but hopefully it&#8217;s packed full of goodies to help you out.</p>
<p>OK, so first things first.. start up the Linux EBS Image on EC2.  If you&#8217;re connecting on windows, you need to generate a ppk instead of a pem, and <a href="http://stackoverflow.com/questions/700455/ec2-putty-connect-problem">make sure you give putty your autologin name</a> (currently ec2-user, and NOT root, despite what their instructions say).</p>
<p>OK, now you&#8217;re connected&#8230; You&#8217;ll need to install the Sun JDK (Atlassian doesn&#8217;t support OpenSDK, and even if they did, it crashes looking for fonts).  Go find the linux download (*.rpm.bin), download it (wget +URL), chmod + x, then sudo it to install.  This will install the jdk in /usr/java (not /usr/lib/jvm, where openJDK is installed).  Make it the default java with: alternatives &#8211;install /usr/bin/java java /usr/java/jdk1.6.0_24/jre/bin/java 20000</p>
<p>Now download (wget +URL) Jira for Linux, untar the file.  Create &#8216;jira-home&#8217; in your ~ directory, and create the users like the tutorial asks.  It&#8217;ll take a couple minutes to startup, but eventually everything will come online.</p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2011/04/05/installing-jira-on-amazon-ec2-linux-ami/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Page QueryStrings in Actionscript</title>
		<link>http://hat6.com/2011/01/31/page-querystrings-in-actionscript/</link>
		<comments>http://hat6.com/2011/01/31/page-querystrings-in-actionscript/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 06:25:38 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[one-liners]]></category>

		<guid isPermaLink="false">http://hat6.com/?p=111</guid>
		<description><![CDATA[Want to see the query strings of the page, and not just the swf? Add this little gem: var queryStrings:Object = ExternalInterface.call(&#8220;function(){var o= new Object();window.location.search.replace(new RegExp(&#8220;([^?=&#038;]+)(=([^&#038;]*))?&#8221;,&#8221;g&#8221;),function($0,$1,$2,$3){o[$1]=$3;});return o;}&#8221;);]]></description>
			<content:encoded><![CDATA[<p>Want to see the query strings of the page, and not just the swf? Add this little gem:</p>
<p>var queryStrings:Object = ExternalInterface.call(&#8220;function(){var o= new Object();window.location.search.replace(new RegExp(&#8220;([^?=&#038;]+)(=([^&#038;]*))?&#8221;,&#8221;g&#8221;),function($0,$1,$2,$3){o[$1]=$3;});return o;}&#8221;);</p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2011/01/31/page-querystrings-in-actionscript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I&#8217;m Officially an App Developer!</title>
		<link>http://hat6.com/2010/11/15/im-officially-an-app-developer/</link>
		<comments>http://hat6.com/2010/11/15/im-officially-an-app-developer/#comments</comments>
		<pubDate>Mon, 15 Nov 2010 07:12:58 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AIRDroid]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://hat6.com/2010/11/15/im-officially-an-app-developer/</guid>
		<description><![CDATA[I&#8217;ve uploaded my first app to the Android Market&#8230; some 2 years after I first downloaded the SDK, but less than a month after AIR for Android was released. The app is silly&#8230; a replica of the Multi Pass from &#8216;The Fifth Element&#8217;&#8230; but I&#8217;ll be adding in the ability to customize the info shortly&#8230;.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve uploaded my first app to the Android Market&#8230; some 2 years after I first downloaded the SDK, but less than a month after AIR for Android was released.  The app is silly&#8230; a replica of the Multi Pass from &#8216;The Fifth Element&#8217;&#8230; but I&#8217;ll be adding in the ability to customize the info shortly&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2010/11/15/im-officially-an-app-developer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PlayThisOrPeopleDie</title>
		<link>http://hat6.com/2010/10/17/playthisorpeopledie/</link>
		<comments>http://hat6.com/2010/10/17/playthisorpeopledie/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 21:33:13 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://hat6.com/?p=108</guid>
		<description><![CDATA[Finished up our project for Geeks WithOut Bounds (http://gwob.org) at 5am this morning&#8230; it&#8217;s a game that crisis managers will be able to integrate into their websites and &#8216;playsource&#8217; the tasks of Translating, Locating and Categorizing text messages from people in need. The gamers get badges posted to facebook, providing as much incentive as Farmville [...]]]></description>
			<content:encoded><![CDATA[<p>Finished up our project for Geeks WithOut Bounds (http://gwob.org) at 5am this morning&#8230; it&#8217;s a game that crisis managers will be able to integrate into their websites and &#8216;playsource&#8217; the tasks of Translating, Locating and Categorizing text messages from people in need.  The gamers get badges posted to facebook, providing as much incentive as Farmville <img src='http://hat6.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>The &#8216;game&#8217; portion isn&#8217;t there yet, right now it&#8217;s a pretty form that pulls data from the crisis management software (which has an integration with a txt/im api, tropo.com), pushes responses, and tracks the experience for badges.  It&#8217;s ripe for creative individuals to go hog-wild with it, however&#8230; </p>
<p>http://eden.playthisorpeopledie.com/eden/game/</p>
<p>If anyone is interested in continuing this work, let me know&#8230; I had to throw it up onto git, but I hate git, so I probably won&#8217;t be pushing any updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2010/10/17/playthisorpeopledie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIR Video Transcoding &#8211; NativeProcess example</title>
		<link>http://hat6.com/2010/08/02/air-video-transcoding-nativeprocess/</link>
		<comments>http://hat6.com/2010/08/02/air-video-transcoding-nativeprocess/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 07:17:24 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
				<category><![CDATA[AIR]]></category>

		<guid isPermaLink="false">http://hat6.com/?p=100</guid>
		<description><![CDATA[I hope to write up an explanation of the code, but I promised the User Group that I&#8217;d post the code, and I had better do it now while I&#8217;m thinking about it (only 2 weeks late!) One important note: copy the .ffmpeg directory to your /user/ directory. Use ProcMon to see exactly where (on [...]]]></description>
			<content:encoded><![CDATA[<p>I hope to write up an explanation of the code, but I promised the User Group that I&#8217;d post the code, and I had better do it now while I&#8217;m thinking about it (only 2 weeks late!)</p>
<p>One important note: copy the .ffmpeg directory to your /user/ directory.  Use ProcMon to see exactly where (on windows).  If I were to release this as an actual app, I&#8217;d re-compile ffmpeg to look in the current directory.</p>
<p>Also, I didn&#8217;t include anything in the media folder, you&#8217;ll have to find your own AVI file to transcode.</p>
<p><a href="http://hat6.com/wp-content/uploads/2010/08/AirFFmpeg.fxp">Download the fxp</a>.</p>
<p>Code below the fold.<br />
<span id="more-100"></span></p>
<pre class="brush: php">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:WindowedApplication xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
					   xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
					   xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot;&gt;

	&lt;fx:Script&gt;
		&lt;![CDATA[
			import mx.collections.ArrayCollection;
			import mx.controls.Alert;
			import mx.events.CloseEvent;
			import mx.events.FlexEvent;
			[Bindable] protected var process:NativeProcess;
			[Bindable] protected var outputText:String = &quot;&quot;;

			protected var lengthRegExp:RegExp = /Duration: (.*), start: (.*), bitrate: (.*)/m;
			[Bindable] protected var lengthStr:String = &quot;&quot;;
			[Bindable] protected var lengthNum:Number = 0;

			protected var sizeRegExp:RegExp = /Video(.*) (\d+)x(\d+)/m;
			[Bindable] protected var sizeStr:String = &quot;&quot;;

			protected var curTimeRegExp:RegExp = /time=(\d+).(\d+) /m;
			[Bindable] protected var currentTime:Number = 0;

			protected var startTime:Date = new Date();

			[Bindable] protected var profiles:ArrayCollection = new ArrayCollection([
				{label:&quot;Baseline&quot;, data:&quot;baseline&quot;},
				{label:&quot;Default&quot;, data:&quot;default&quot;},
				{label:&quot;Very Slow&quot;, data:&quot;veryslow&quot;},
				{label:&quot;Slower&quot;, data:&quot;slower&quot;},
				{label:&quot;Slow&quot;, data:&quot;slow&quot;},
				{label:&quot;Fast&quot;, data:&quot;fast&quot;},
				{label:&quot;Faster&quot;, data:&quot;faster&quot;},
				{label:&quot;Super Fast&quot;, data:&quot;superfast&quot;},
				{label:&quot;Ultra Fast&quot;, data:&quot;ultrafast&quot;},
				{label:&quot;IPod Low&quot;, data:&quot;ipod320&quot;},
				{label:&quot;IPod High&quot;, data:&quot;ipod640&quot;},
				{label:&quot;High Quality&quot;, data:&quot;hq&quot;},
				{label:&quot;Lossless - Slow&quot;, data:&quot;lossless_slow&quot;},
				{label:&quot;Lossless - Ultrafast&quot;, data:&quot;lossless_ultrafast&quot;}]);

			protected function button1_clickHandler(event:MouseEvent):void
			{
				if(!NativeProcess.isSupported) return;
				if(process &amp;&amp; process.running){
					trace(&quot;FFmpeg is already running&quot;);
					return;
				}
				startTime = new Date();
				var vid:File = File.applicationDirectory.resolvePath(&#039;media\\P7030615.avi&#039;);
				var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
				var f:File = new File(File.applicationDirectory.nativePath + &quot;\\NativeApps\\windows\\ffmpeg\\bin\\ffmpeg.exe&quot;);
				nativeProcessStartupInfo.executable = f;
				var args:Vector.&lt;String&gt; = new Vector.&lt;String&gt;();
					args.push(&quot;-i&quot;);
					args.push(vid.nativePath);
					args.push(&quot;-acodec&quot;);
					args.push(&quot;libmp3lame&quot;);
					args.push(&quot;-ab&quot;);
					args.push(&quot;128k&quot;);
					args.push(&quot;-vcodec&quot;);
					args.push(&quot;libx264&quot;);
					args.push(&quot;-vpre&quot;);
					args.push(profileDDL.selectedItem.data);
					args.push(&quot;-crf&quot;);
					args.push(&quot;22&quot;);
					args.push(&quot;-threads&quot;);
					args.push(&quot;0&quot;);
					args.push(vid.nativePath + &#039;.mp4&#039;);
				nativeProcessStartupInfo.arguments = args;
				//ffmpeg -i ..\..\media\P7030615.avi -acodec libmp3lame -ab 128k -vcodec libx264 -vpre slow -crf 22 -threads 0 ..\..\media\P7030615.mp4
				process = new NativeProcess();
				process.start(nativeProcessStartupInfo);
				process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, handleFFmpegError);
				process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, handleFFmpegOutput);
				process.addEventListener(NativeProcessExitEvent.EXIT, handleFFmpegExit);
			}
			protected function parseOutput(output:String):void{
				if(lengthRegExp.test(output)){
					var results:Array = lengthRegExp.exec(output);
					lengthStr = results[1];
					var lengthArr:Array = String(results[1]).split(&quot;:&quot;);
					lengthNum = parseFloat(lengthArr[2]) +
								(parseFloat(lengthArr[1]) * 60);
				}
				if(sizeRegExp.test(output)){
					var resultsSize:Array = sizeRegExp.exec(output);
					sizeStr = resultsSize[2] + &quot; x &quot; + resultsSize[3];
					trace(sizeStr);
				}
				if(curTimeRegExp.test(output)){
					var resultsTime:Array = curTimeRegExp.exec(output);
					currentTime = parseFloat(resultsTime[1] + &quot;.&quot; + resultsTime[2]);
					var percentDone:Number = Math.floor(currentTime / lengthNum * 100)
					progress.setProgress(percentDone, 100);
					var now:Date = new Date();
					var diff:Number = now.valueOf() - startTime.valueOf();
					var total:Number = diff / (percentDone / 100);
					var remaining:Date = new Date(total - diff);
					progress.label = percentDone + &quot;% Complete / &quot; + remaining.toUTCString().split(&quot; &quot;)[3] + &quot; remaining&quot;;
				}

			}
			protected function handleFFmpegOutput(e:ProgressEvent):void{
				var output:String = process.standardOutput.readUTFBytes(process.standardOutput.bytesAvailable);
				outputText += output;
				parseOutput(output);
				textReceived.scrollToRange(-1);
				if(output.indexOf(&quot;already exists&quot;) &gt; -1){
					Alert.show(&quot;Overwrite File?&quot;, &quot;File Exists&quot;, 4, null, handleOverwriteClosed)
				}

			}
			public function ffmpegcommand(cmdStr:String):void
			{
				if(process &amp;&amp; process.running){
					process.standardInput.writeUTFBytes(cmdStr + &quot;\n&quot;);
				}
			}
			protected function handleOverwriteClosed(e:CloseEvent):void{
				if(e.detail == Alert.YES){
					ffmpegcommand(&quot;y&quot;);
					startTime = new Date();
				}else{
					ffmpegcommand(&quot;n&quot;);
				}

			}
			protected function handleFFmpegError(e:ProgressEvent):void{
				var errorData:String = process.standardError.readUTFBytes(process.standardError.bytesAvailable);
				outputText += errorData;
				parseOutput(errorData);
				textReceived.scrollToRange(-1);
				if(errorData.indexOf(&quot;already exists&quot;) &gt; -1){
					Alert.show(&quot;Overwrite File?&quot;, &quot;File Exists&quot;, Alert.YES|Alert.NO, null, handleOverwriteClosed)
				}
			}

			protected function handleFFmpegExit(e:NativeProcessExitEvent):void{
				trace(&quot;FFmpeg Exited: &quot; + e.exitCode);
				trace(e.toString());
			}
			protected function traceError(e:Event):void{
				trace(e);
			}
			protected function tr_updateCompleteHandler(evt:FlexEvent):void {
				textReceived.scroller.verticalScrollBar.value = textReceived.scroller.verticalScrollBar.maximum;
			}

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

	&lt;fx:Declarations&gt;
		&lt;!-- Place non-visual elements (e.g., services, value objects) here --&gt;
	&lt;/fx:Declarations&gt;
	&lt;s:layout&gt;
		&lt;s:VerticalLayout paddingTop=&quot;5&quot; paddingRight=&quot;5&quot; paddingLeft=&quot;5&quot; gap=&quot;0&quot; /&gt;
	&lt;/s:layout&gt;
	&lt;s:TabBar dataProvider=&quot;{mainView}&quot; /&gt;
	&lt;mx:ViewStack id=&quot;mainView&quot; width=&quot;100%&quot; height=&quot;100%&quot; borderStyle=&quot;solid&quot; borderVisible=&quot;true&quot; creationPolicy=&quot;all&quot;&gt;
		&lt;s:NavigatorContent label=&quot;Convert&quot;&gt;
			&lt;s:VGroup width=&quot;100%&quot; height=&quot;100%&quot;&gt;
				&lt;mx:Text height=&quot;40&quot; id=&quot;infoText&quot; width=&quot;100%&quot;
							text=&quot;Duration: {lengthStr}
							Size: {sizeStr}&quot; /&gt;
				&lt;s:HGroup width=&quot;100%&quot;&gt;
					&lt;mx:ProgressBar width=&quot;100%&quot; id=&quot;progress&quot; mode=&quot;manual&quot; direction=&quot;right&quot; /&gt;
					&lt;s:Button label=&quot;Cancel&quot; click=&quot;if(process)process.exit(true);&quot; /&gt;
				&lt;/s:HGroup&gt;
				&lt;s:DropDownList id=&quot;profileDDL&quot; width=&quot;200&quot;
								dataProvider=&quot;{profiles}&quot;
								prompt=&quot;Choose an encoding profile&quot; /&gt;
				&lt;s:Button label=&quot;Start Conversion&quot; enabled=&quot;{profileDDL.selectedIndex &gt; -1}&quot;
						  click=&quot;button1_clickHandler(event)&quot; /&gt;

			&lt;/s:VGroup&gt;
		&lt;/s:NavigatorContent&gt;
		&lt;s:NavigatorContent label=&quot;Log&quot;&gt;
			&lt;s:TextArea id=&quot;textReceived&quot; width=&quot;100%&quot; height=&quot;100%&quot;
						text=&quot;{outputText}&quot;
						updateComplete=&quot;tr_updateCompleteHandler(event)&quot; /&gt;

		&lt;/s:NavigatorContent&gt;
	&lt;/mx:ViewStack&gt;
&lt;/s:WindowedApplication&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2010/08/02/air-video-transcoding-nativeprocess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex 4 gotcha &#8211; baseColor changed to chromeColor</title>
		<link>http://hat6.com/2010/03/12/flex-4-gotcha-basecolor-changed-to-chromecolor/</link>
		<comments>http://hat6.com/2010/03/12/flex-4-gotcha-basecolor-changed-to-chromecolor/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 17:13:32 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://hat6.com/2010/03/12/flex-4-gotcha-basecolor-changed-to-chromecolor/</guid>
		<description><![CDATA[Sometime after Flex 4 beta 2 was released, they changed the main way to change the color of a sparkSkin from &#8216;baseColor&#8217; to &#8216;chromeColor&#8217;. So, if you get an error in eclipse about how baseColor doesn&#8217;t exist, but the tutorials are telling you that it does, try chromeColor instead.]]></description>
			<content:encoded><![CDATA[<p>Sometime after Flex 4 beta 2 was released, they changed the main way to change the color of a sparkSkin from &#8216;baseColor&#8217; to &#8216;chromeColor&#8217;.  So, if you get an error in eclipse about how baseColor doesn&#8217;t exist, but the tutorials are telling you that it does, try chromeColor instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2010/03/12/flex-4-gotcha-basecolor-changed-to-chromecolor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

