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

<channel>
	<title>h6 - HatSix</title>
	<atom:link href="http://hat6.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://hat6.com</link>
	<description>Hat6 Web Application Engineering</description>
	<pubDate>Sun, 11 May 2008 23:59:03 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Debugging AIR Drag and Drop</title>
		<link>http://hat6.com/2008/05/11/debugging-air-drag-and-drop/</link>
		<comments>http://hat6.com/2008/05/11/debugging-air-drag-and-drop/#comments</comments>
		<pubDate>Sun, 11 May 2008 23:59:03 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
		
		<category><![CDATA[AIR]]></category>

		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://hat6.com/2008/05/11/debugging-air-drag-and-drop/</guid>
		<description><![CDATA[So&#8230; you thought you&#8217;d be cool and throw a break point on some DRAG_ENTER code, but after you&#8217;re done debugging, you&#8217;re left with a little floating icon on your desktop.

Never fear, you don&#8217;t have to restart your entire computer, open up Taskmanager and you&#8217;ll see an application called &#8216;Drag&#8217;.  You can kill this application [...]]]></description>
			<content:encoded><![CDATA[<p>So&#8230; you thought you&#8217;d be cool and throw a break point on some DRAG_ENTER code, but after you&#8217;re done debugging, you&#8217;re left with a little floating icon on your desktop.</p>
<p><img src="http://hat6.com/wp-content/uploads/2008/05/debugging_dragdrop.png" alt="Debugging Drag and Drop" /></p>
<p>Never fear, you don&#8217;t have to restart your entire computer, open up Taskmanager and you&#8217;ll see an application called &#8216;Drag&#8217;.  You can kill this application and the icon will disappear.  If you don&#8217;t see this app, close Eclipse and find the process called &#8216;adl.exe&#8217; and kill this process.</p>
<p>Restart averted, Yay!</p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2008/05/11/debugging-air-drag-and-drop/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BlazeDS + Flex - First Draft</title>
		<link>http://hat6.com/2008/02/14/blazeds-flex-first-draft/</link>
		<comments>http://hat6.com/2008/02/14/blazeds-flex-first-draft/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 20:51:42 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://hat6.com/2008/02/14/blazeds-flex-first-draft/</guid>
		<description><![CDATA[Welcome SeaFlex&#8217;ers and other MXNA visitors.  I haven&#8217;t gotten around to finishing up my article, but I&#8217;ve posted it on my BlazeDS + Flex page 
It&#8217;s really a draft right now, you&#8217;ll see strikeouts and everything.  Most of the content is in there, but I need to add a page or two about debugging the [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome SeaFlex&#8217;ers and other MXNA visitors.  I haven&#8217;t gotten around to finishing up my article, but I&#8217;ve posted it on my <a href="/blazeds-flex/" title="BlazeDS + Flex">BlazeDS + Flex page </a></p>
<p>It&#8217;s really a draft right now, you&#8217;ll see strikeouts and everything.  Most of the content is in there, but I need to add a page or two about debugging the project, as getting an Ant-built project to debug properly in Flex can be a pain.  I&#8217;ll also be adding some info about how to debug your java code at the same time you are debugging your flex code.</p>
<p>Take a look, and feel free to leave comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2008/02/14/blazeds-flex-first-draft/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BlazeDS + Flex, From a Java Newbie&#8217;s Perspective (Background)</title>
		<link>http://hat6.com/2008/01/18/blazeds-flex-from-a-java-newbies-perspective-background/</link>
		<comments>http://hat6.com/2008/01/18/blazeds-flex-from-a-java-newbies-perspective-background/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 21:48:46 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://hat6.com/2008/01/18/blazeds-flex-from-a-java-newbies-perspective-background/</guid>
		<description><![CDATA[I&#8217;ve recently committed to speaking at the Seattle Flex User Group meeting in Feb, and in preparation, I will be posting my &#8216;notes&#8217; here. Hopefully I will be able to take you from knowing no java to being able to have a simple yet useful application working in BlazeDS. This application will utilize Java, Hibernate [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently committed to speaking at the Seattle Flex User Group meeting in Feb, and in preparation, I will be posting my &#8216;notes&#8217; here. Hopefully I will be able to take you from knowing no java to being able to have a simple yet useful application working in BlazeDS. This application will utilize <a href="http://java.sun.com/javase/downloads/?intcmp=1281" target="_blank" title="Get Java">Java</a>, <a href="http://www.hibernate.org/" target="_blank" title="Hibernate">Hibernate</a> and <a href="http://dev.mysql.com/downloads/mysql/5.1.html" title="Get MySQL" target="_blank">MySQL</a> to power the <a href="http://visudemos.ilog.com/webdemos/humanresources/humanresources.html" target="_blank" title="ILOG Elixir Human Resources Demo">Resource Manager</a> graph from <a href="http://www.ilog.com/products/elixir/" title="ILOG Elixir" target="_blank">ILOG Elixir</a>. For Java newbies like myself, I can recommend the following reading materials (I recommend signing up for OReilly <a href="http://safari.oreilly.com/home" title="OReilly Safari">Safari</a>):</p>
<ul>
<li><a href="http://safari.oreilly.com/0596528183" title="Getting Started with Hibernate 3" target="_blank">Getting Started with Hibernate 3</a> (OReilly Shortcut)</li>
<li><a href="http://safari.oreilly.com/0672328968" target="_blank" title="Agile Java Development with Spring, Hibernate and Eclipse">Agile Java Development with Spring, Hibernate and Eclipse</a></li>
<li><a href="http://safari.oreilly.com/0596009208" title="Head First Java" target="_blank">Head First Java</a></li>
</ul>
<p>**update** I&#8217;ve moved everything to a static page, view it here: <a href="/blazeds-flex/" title="BlazeDS + Flex">BlazeDS + Flex</a><br />
<span id="more-10"></span>With the release of BlazeDS and WebORB Java going free, creating XML files from PHP doesn&#8217;t seem to be such a good idea anymore. After spending a year with Flex, switching back to PHP with it&#8217;s dynamic typing feels like I&#8217;ve switched to using crayons. Don&#8217;t get me wrong, I&#8217;ll still use PHP for other purposes, but when I have all of the data strongly typed on the client and in the database, I don&#8217;t like the backend to not care.</p>
<p>A little bit of background, I haven&#8217;t compiled a Java program in 4 years, and that was for CompSci 312 when I was getting my undergrad. I&#8217;m coming to this brand new, and I may be making some mistakes&#8230; Hopefully I make them, someone corrects me, and I can pass this knowledge back to everyone else looking to take advantage of BlazeDS.</p>
<p>Also of some interest is that this is currently the third iteration of my little project. First I used WebORB PHP and was generally happy with the result. I wasn&#8217;t so happy with the whole PHP part, so I decided to see if I could learn Java.  I ported my app over to Java with the help of the WebORB documentation, and I&#8217;d strongly recommend any java newbies to experiment with WebORB, as there is no newbie documentation for BlazeDS. After I got my application working in WebORB, I decided I wanted some of the Messaging/Polling features offered in BlazeDS, and after reading <a href="http://www.ziazoo.co.uk/blog/index.php/2008/01/14/blazeds-with-spring/" title="BlazeDS with Spring">this</a> post, I decided to try porting over to BlazeDS. WebORB does a lot of hand-holding, and BlazeDS requires more explicit configuration, but after working this out, I&#8217;ve got my application running on three backends!</p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2008/01/18/blazeds-flex-from-a-java-newbies-perspective-background/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Adding Build, Build Date, Revision and Revision Date in your Flex App</title>
		<link>http://hat6.com/2007/11/29/adding-build-build-date-revision-and-revision-date-in-your-flex-app/</link>
		<comments>http://hat6.com/2007/11/29/adding-build-build-date-revision-and-revision-date-in-your-flex-app/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 00:51:06 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://hat6.com/2007/11/29/adding-build-build-date-revision-and-revision-date-in-your-flex-app/</guid>
		<description><![CDATA[I have recently started branching my code out for multiple customers, and I needed an easy way for the Project Managers to be able to see more info about the deliverables, and be able to send that data back to me for bugfixes, feature requests, etc&#8230;
I&#8217;ve been using Ant for a while, it&#8217;s great for [...]]]></description>
			<content:encoded><![CDATA[<p>I have recently started branching my code out for multiple customers, and I needed an easy way for the Project Managers to be able to see more info about the deliverables, and be able to send that data back to me for bugfixes, feature requests, etc&#8230;</p>
<p>I&#8217;ve been using Ant for a while, it&#8217;s great for packaging up my Flash/AS2 applications, without including the .as, .fla, swd, etc.. files. And since so many java devs use SVN, I knew there had to be some sort of integration between the two.  I eventually stumbled upon SVNANT, but was unable to get the 1.0.0 working on my machine.  I found many references to 1.1.0, however, so I downloaded the source and compiled it (Thanks to <a href="http://www.alagad.com/go/blog-entry/ant--subversion-on-windows" title="Ant + Subversion" target="_blank">Jeff </a>at Alagad). This worked right away for me, so with the help of <a href="http://howardscholz.wordpress.com/2007/07/28/flex-build-numbers-using-ant-and-flextasks/" title="Build Numbers with Ant + FlexTasks" target="_blank">this </a>post from Howard Scholtz, I was able to add in revsion #/time directly into the app without using svn keywords!</p>
<p>Code included after the break.<span id="more-8"></span><br />
This is the target I use in the build.xml file, it&#8217;s pretty generic, you should be able to drop it in and it will work, as long as you are using APP_ROOT.</p>
<pre lang="xml">
	<target name="tagAndBag">
		<svn>
			<status path="." revisionproperty="build.revision" lastchangedrevisionproperty="build.lastChangedRev" lastchangeddateproperty="build.lastChangedDate">
		</status>
		<buildnumber file="mybuild.number"></buildnumber>
		<tstamp prefix="build">
		<tstamp>
<format property="build.time" pattern="MMM dd yy hh:mm aa" unit="hour"></format>
		</tstamp>
		<echo>Build Number ${build.number} ${build.time}</echo>
		<echo>Revision Number: ${build.lastChangedRev}/${build.revision} committed on: ${build.lastChangedDate}</echo>
		<copy file="${APP_ROOT}/Version.as.template" tofile="${APP_ROOT}/Version.as">
		<replace file="${APP_ROOT}/Version.as" token="@buildnumber@" value="${build.number}">
		<replace file="${APP_ROOT}/Version.as" token="@buildtime@" value="${build.time}">
		<replace file="${APP_ROOT}/Version.as" token="@revisionnumber@" value="${build.revision}">
		<replace file="${APP_ROOT}/Version.as" token="@revisiontime@" value="${build.lastChangedDate}">
	</replace>
</replace></replace></replace></copy></tstamp></svn></target></pre>
<p>Here&#8217;s my Version.as file:</p>
<pre lang="actionscript">
// Version Information
public var build_number:String="@buildnumber@";
public var build_time:String="@buildtime@";
public var revision_number:String="@revisionnumber@";
public var revision_time:String="@revisiontime@";</pre>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2007/11/29/adding-build-build-date-revision-and-revision-date-in-your-flex-app/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Accessing items created by a Repeater</title>
		<link>http://hat6.com/2007/10/18/accessing-items-created-by-a-repeater/</link>
		<comments>http://hat6.com/2007/10/18/accessing-items-created-by-a-repeater/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 15:53:20 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://hat6.com/2007/10/18/accessing-items-created-by-a-repeater/</guid>
		<description><![CDATA[So, I&#8217;ve got some components that will need to be updated by non-programmers, so in the interest of keeping things easy to understand for them, I&#8217;m using Repeaters when I need to create multiple items based on Data (rather than creating my own component that creates these items itself through the data, which would be [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve got some components that will need to be updated by non-programmers, so in the interest of keeping things easy to understand for them, I&#8217;m using Repeaters when I need to create multiple items based on Data (rather than creating my own component that creates these items itself through the data, which would be much more efficient, and less vexing).</p>
<p>So, using Repeaters creates many issues you don&#8217;t usually come in contact with. Here are some of the things I&#8217;ve run into, and the workarounds.</p>
<ul>
<li>Repeater.currentItem not available in the click handler
<ul>
<li>Same as with a list and an ItemRenderer, but because I just need a button, and nothing fancy, this is annoying.  I got around this by setting the &#8220;data&#8221; property (FB won&#8217;t suggest data as a property, but it&#8217;s there!) to Repeater.currentItem.</li>
</ul>
</li>
<li>Repeater isn&#8217;t on the display list, and doesn&#8217;t have an array of &#8216;children&#8217;, so it&#8217;s hard to get at the items that were created.
<ul>
<li>A mysterious feature of Repeaters is that if you set the id of the items created, AS3 will see an array based on that ID<br />
This means that if I use &lt;Button id=&#8221;buttonArray&#8221; /&gt; I will be able to do a &#8220;for each(b:Button in buttonArray)&#8221; loop to get access to those buttons. This works just like the groupName property of RadioButtons.</li>
</ul>
</li>
<li>Button property &#8217;selectedField&#8217; only gets the state, and does not set the data&#8217;s value when &#8217;selected&#8217; is changed.
<ul>
<li>I&#8217;m not sure how I feel about this.  Part of me expects that when the button changes to &#8217;selected&#8217;, the data&#8217;s field should be changed too.  Then the pedantic, MVC Loving part of me kicks in and wants to strangle anyone who lets the interface directly change the model&#8230; so I end up half-strangled and completely exhausted.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2007/10/18/accessing-items-created-by-a-repeater/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Null Exceptions silently fail in data bindings.</title>
		<link>http://hat6.com/2007/09/11/null-exceptions-silently-fail-in-data-bindings/</link>
		<comments>http://hat6.com/2007/09/11/null-exceptions-silently-fail-in-data-bindings/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 17:09:55 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://hat6.com/2007/09/11/null-exceptions-silently-fail-in-data-bindings/</guid>
		<description><![CDATA[So, I&#8217;m sure it&#8217;s necessary, as bindings can happen at strange times, but null exceptions fail silently and can cause lots of debugging headaches when dealing with Data Bindings.
For me, I had forgotten to set an initialize value, so I was attempting to reach object.value, but object was null. Normally this throws an error, a [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;m sure it&#8217;s necessary, as bindings can happen at strange times, but null exceptions fail silently and can cause lots of debugging headaches when dealing with Data Bindings.</p>
<p>For me, I had forgotten to set an initialize value, so I was attempting to reach object.value, but object was null. Normally this throws an error, a quick and easy fix, but when this happens during Data Binding, no error, so you&#8217;re left scratching your head wondering why the hell your function is finishing on the 2nd line of code.</p>
<p>4 hours later, you look up and see that you forgot to initialize the var.</p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2007/09/11/null-exceptions-silently-fail-in-data-bindings/feed/</wfw:commentRss>
		</item>
		<item>
		<title>One-line Array Filtering</title>
		<link>http://hat6.com/2007/08/28/one-line-array-filtering/</link>
		<comments>http://hat6.com/2007/08/28/one-line-array-filtering/#comments</comments>
		<pubDate>Tue, 28 Aug 2007 19:49:40 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
		
		<category><![CDATA[one-liners]]></category>

		<guid isPermaLink="false">http://hat6.com/2007/08/28/one-line-array-filtering/</guid>
		<description><![CDATA[I&#8217;m a fan of one-liners, and here&#8217;s an AWESOME one-line that saves a LOT of code, use this in a for each() for maximum fun.

someArray().filter(function(o:*, index:int, arr:Array):Boolean{return o.selected})

This makes looping through arrays and checking values quick and painless. You can also add in a .every() function on the end if you&#8217;re doing something simple, like [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a fan of one-liners, and here&#8217;s an AWESOME one-line that saves a LOT of code, use this in a for each() for maximum fun.</p>
<pre lang="actionscript">
someArray().filter(function(o:*, index:int, arr:Array):Boolean{return o.selected})
</pre>
<p>This makes looping through arrays and checking values quick and painless. You can also add in a .every() function on the end if you&#8217;re doing something simple, like tracing or logging (just remember to return false; in the every function).</p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2007/08/28/one-line-array-filtering/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Canceling Events</title>
		<link>http://hat6.com/2007/08/21/canceling-events/</link>
		<comments>http://hat6.com/2007/08/21/canceling-events/#comments</comments>
		<pubDate>Tue, 21 Aug 2007 22:33:18 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://hat6.com/2007/08/21/canceling-events/</guid>
		<description><![CDATA[I just ran across an awesome tip/trick to remember when you need to cancel events in Flex. (or even writing your own).
From Sasha Magee @ Adobe on the ApolloCoders group:
The events that end in  &#8220;ing&#8221; are the cancellable events that happen BEFORE the displayState change. We added these specifically so you could cancel the [...]]]></description>
			<content:encoded><![CDATA[<p>I just ran across an awesome tip/trick to remember when you need to cancel events in Flex. (or even writing your own).</p>
<p>From Sasha Magee @ Adobe on the ApolloCoders group:</p>
<blockquote><p><em>The events that end in  &#8220;ing&#8221; are the cancellable events that happen BEFORE the displayState change. We added these specifically so you could cancel the event.</em></p></blockquote>
<p>I know, one of those things that seems obvious after you read it, but I hadn&#8217;t seen it said before. Something to keep in mind when your preventDefault() isn&#8217;t working.</p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2007/08/21/canceling-events/feed/</wfw:commentRss>
		</item>
		<item>
		<title>h6 revived!</title>
		<link>http://hat6.com/2007/08/18/h6-revived/</link>
		<comments>http://hat6.com/2007/08/18/h6-revived/#comments</comments>
		<pubDate>Sat, 18 Aug 2007 08:29:09 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://hat6.com/2007/08/18/h6-revived/</guid>
		<description><![CDATA[After several &#8220;what&#8217;s your blog&#8221; questions at the recent Flex&#124;360 Conference, I&#8217;ve decided to try the blog thing again.  Who knows what&#8217;ll actually make it&#8217;s way to the page, we&#8217;ll just have to see.  I&#8217;ve already got my first post planned, hopefully I can take some screenshots yet tonight, then I can get some actual [...]]]></description>
			<content:encoded><![CDATA[<p>After several &#8220;what&#8217;s your blog&#8221; questions at the recent Flex|360 Conference, I&#8217;ve decided to try the blog thing again.  Who knows what&#8217;ll actually make it&#8217;s way to the page, we&#8217;ll just have to see.  I&#8217;ve already got my first post planned, hopefully I can take some screenshots yet tonight, then I can get some actual content up.</p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2007/08/18/h6-revived/feed/</wfw:commentRss>
		</item>
		<item>
		<title>About</title>
		<link>http://hat6.com/2007/08/18/about/</link>
		<comments>http://hat6.com/2007/08/18/about/#comments</comments>
		<pubDate>Sat, 18 Aug 2007 07:35:29 +0000</pubDate>
		<dc:creator>Dusty</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://hat6.com/about/</guid>
		<description><![CDATA[Hat6 is the freelance persona of Dusty Jewett.  Currently working for Panasonic Avionics, Dusty is always looking for ways to stretch his development skills, especially in the upcoming RIAvolution.
Dusty entertains all offers, especially the wonderful &#8220;can&#8217;t refuse&#8221; type.  Big or small, just drop an email.
]]></description>
			<content:encoded><![CDATA[<p>Hat6 is the freelance persona of Dusty Jewett.  Currently working for Panasonic Avionics, Dusty is always looking for ways to stretch his development skills, especially in the upcoming RIAvolution.</p>
<p>Dusty entertains all offers, especially the wonderful &#8220;can&#8217;t refuse&#8221; type.  Big or small, just drop an email.</p>
]]></content:encoded>
			<wfw:commentRss>http://hat6.com/2007/08/18/about/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
