<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>lukesh +interactive</title>
	<atom:link href="http://lukesh.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lukesh.wordpress.com</link>
	<description>the blog of a profoundly pretentious and arrogant interactive agency professional. i'm better than you.</description>
	<lastBuildDate>Sat, 13 Jun 2009 15:31:31 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
		<url>http://www.gravatar.com/blavatar/6023130323ea741dcf878150c905e494?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>lukesh +interactive</title>
		<link>http://lukesh.wordpress.com</link>
	</image>
			<item>
		<title>Immutable Strings, Arrays, Lists, and dataProviders PSA</title>
		<link>http://lukesh.wordpress.com/2009/06/12/immutable-strings-arrays-lists-and-dataproviders-psa/</link>
		<comments>http://lukesh.wordpress.com/2009/06/12/immutable-strings-arrays-lists-and-dataproviders-psa/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 23:05:43 +0000</pubDate>
		<dc:creator>lukesh</dc:creator>
				<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[dataprovider]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://lukesh.wordpress.com/?p=99</guid>
		<description><![CDATA[First, click here to view a quick demo of the problem. (Source here). When the lists load, roll over one of the items labeled &#8220;something&#8221; and notice the hover behavior.
The problem is, that these Lists are bound to and Array and an ArrayCollection of Strings (which are immutable in AS3). Likewise, if multiple entries in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=99&subd=lukesh&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>First, <a href="http://lukesh.com/files/fx3list/" target="_blank">click here</a> to view a quick demo of the problem. (Source <a href="http://gist.github.com/129284" target="_blank">here</a>). When the lists load, roll over one of the items labeled &#8220;something&#8221; and notice the hover behavior.</p>
<p>The problem is, that these Lists are bound to and Array and an ArrayCollection of Strings (which are immutable in AS3). Likewise, if multiple entries in an Array referenced the same object, the same issue would occur.</p>
<p>This is a particularly annoying implementation challenge, where you might commonly want to bind an Array of String to a List. This may or may not actually be a bug&#8211;well it might be, in that the requirement for uniqueness in dataProviders isn&#8217;t very well documented&#8211;but it is consistent with how Arrays work in AS3. If you have two strings in an ArrayCollection, for example, the only way to retrieve a particular value is to do so by index; you cannot call .getItem(&#8221;stringvalue&#8221;) because the collection has no idea which one you are referring to.</p>
<p>The workaround is either to wrap each item in a new object, such that [{label: "string value"}, {label: "string value"}] so that each object actually exists as a unique object in memory, or to wrap ArrayCollection so that it recognizes primitives and wraps them automatically.</p>
<p>This &#8220;bug&#8221; is being tracked here: <a href="https://bugs.adobe.com/jira/browse/SDK-17182" target="_blank">https://bugs.adobe.com/jira/browse/SDK-17182</a> reported by Albert Chang.</p>
<p>This effect was brought to my attention by <a href="http://wintondeshong.com/" target="_blank">Winton De Shong</a>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lukesh.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lukesh.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lukesh.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lukesh.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lukesh.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lukesh.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lukesh.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lukesh.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lukesh.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lukesh.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=99&subd=lukesh&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lukesh.wordpress.com/2009/06/12/immutable-strings-arrays-lists-and-dataproviders-psa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d51d5d771dbee8cccba71a4059e055cb?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">lukesh</media:title>
		</media:content>
	</item>
		<item>
		<title>HydraFramework Source on GitHub</title>
		<link>http://lukesh.wordpress.com/2009/05/21/hydraframework-source-on-github/</link>
		<comments>http://lukesh.wordpress.com/2009/05/21/hydraframework-source-on-github/#comments</comments>
		<pubDate>Thu, 21 May 2009 01:14:02 +0000</pubDate>
		<dc:creator>lukesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lukesh.wordpress.com/?p=97</guid>
		<description><![CDATA[HydraMVC has become a part of HydraFramework. The source is on http://github.com/lukesh and you can read more about the framework at http://hydraframework.com. More later!
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=97&subd=lukesh&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>HydraMVC has become a part of HydraFramework. The source is on <a href="http://github.com/lukesh">http://github.com/lukesh</a> and you can read more about the framework at <a href="http://hydraframework.com">http://hydraframework.com</a>. More later!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lukesh.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lukesh.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lukesh.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lukesh.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lukesh.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lukesh.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lukesh.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lukesh.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lukesh.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lukesh.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=97&subd=lukesh&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lukesh.wordpress.com/2009/05/21/hydraframework-source-on-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d51d5d771dbee8cccba71a4059e055cb?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">lukesh</media:title>
		</media:content>
	</item>
		<item>
		<title>Rawr! FlexGrowl Component Available</title>
		<link>http://lukesh.wordpress.com/2009/04/04/rawr-flexgrowl-component-available/</link>
		<comments>http://lukesh.wordpress.com/2009/04/04/rawr-flexgrowl-component-available/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 19:41:44 +0000</pubDate>
		<dc:creator>lukesh</dc:creator>
				<category><![CDATA[Design and Creativity]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Technology and Science]]></category>

		<guid isPermaLink="false">http://lukesh.wordpress.com/?p=93</guid>
		<description><![CDATA[Want to growl in your Flex apps? Try this junk. FlexGrowl is a component that allows you to create growl-like notifications in your Flex apps<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=93&subd=lukesh&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Want to growl in your Flex apps? Try this junk. FlexGrowl is a component that allows you to create growl-like notifications in your Flex apps. If you don&#8217;t know, Growl is an integrated notification system for OSX that listens for notifications from registered applications. It looks like this:</p>
<p><img class="alignnone" title="Growl" src="http://lukesh.com/files/samplegrowls.png" alt="" width="491" height="413" /></p>
<p>FlexGrowl implements this type of interface for Flex; it looks like this (<a href="http://lukesh.com/files/growler/index.html" target="_blank">click here for working demo</a>):</p>
<p><img class="alignnone" title="Sample FlexGrowl" src="http://lukesh.com/files/growler.png" alt="" width="730" height="586" /></p>
<p>However, you can customize the growl notifications to look however you&#8217;d like. The notifications shown above are created with <a href="http://www.degrafa.org/" target="_blank">Degrafa</a> (which, by the way, is awesome). <a href="http://lukesh.com/files/FlexGrowl.zip" target="_blank">Click here to download the source</a>. Let me know what you think!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lukesh.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lukesh.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lukesh.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lukesh.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lukesh.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lukesh.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lukesh.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lukesh.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lukesh.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lukesh.wordpress.com/93/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=93&subd=lukesh&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lukesh.wordpress.com/2009/04/04/rawr-flexgrowl-component-available/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d51d5d771dbee8cccba71a4059e055cb?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">lukesh</media:title>
		</media:content>

		<media:content url="http://lukesh.com/files/samplegrowls.png" medium="image">
			<media:title type="html">Growl</media:title>
		</media:content>

		<media:content url="http://lukesh.com/files/growler.png" medium="image">
			<media:title type="html">Sample FlexGrowl</media:title>
		</media:content>
	</item>
		<item>
		<title>HydraMVC 0.1.3 Released</title>
		<link>http://lukesh.wordpress.com/2009/04/01/hydramvc-013-released/</link>
		<comments>http://lukesh.wordpress.com/2009/04/01/hydramvc-013-released/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 22:10:03 +0000</pubDate>
		<dc:creator>lukesh</dc:creator>
				<category><![CDATA[Design and Creativity]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Technology and Science]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[mvc]]></category>

		<guid isPermaLink="false">http://lukesh.wordpress.com/?p=89</guid>
		<description><![CDATA[&#8230;And it seems to be the magic number for now. I&#8217;ve been using this version for a while and it seems stable and complete enough to actually use f&#8217;real. If you don&#8217;t know what it is, click here to read about it and get it.
Besides all the obvious goals for HydraMVC (read about them on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=89&subd=lukesh&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="alignright size-full wp-image-90" title="HydraMVC.com Screenshot" src="http://lukesh.files.wordpress.com/2009/04/ac3bf0605bbc32940c854b762d3895a0.png?w=500&#038;h=370" alt="HydraMVC.com Screenshot" width="500" height="370" />&#8230;And it seems to be the magic number for now. I&#8217;ve been using this version for a while and it seems stable and complete enough to actually use f&#8217;real. If you don&#8217;t know what it is, <a href="http://www.hydramvc.com" target="_blank">click here</a> to read about it and get it.</p>
<p>Besides all the obvious goals for HydraMVC (read about them on the website), I have a few big plans for the framework. Firstly, I&#8217;d absolutely love to get an AIR debug console written for it. I just ran across <a href="http://demonsterdebugger.com/" target="_blank">this gem </a>today, which is pretty close to what I would like to develop for Hydra, except that instead of debugging the AS3 code per se, it would debug the application logic of the MVC by trapping the paths of Notifications as they are handled by the various actors in the MVC. Since De MonsterDebugger is open source, there&#8217;s nothing preventing me from actually <em>augmenting </em>it with a HydraMVC debug console. Talk about pure hotness. Anyway, with deadlines (seriously) looming, don&#8217;t look for this anytime this month. But it will happen. Mark my words.</p>
<p>Secondly, something that would also be wonderful if it was integrated with a debug console would be a unit testing interface. That&#8217;s all I&#8217;m gonna say. See, the beauty of it is that we could just compile out two HydraMVC SWC&#8217;s&#8211;a debug version and a production version. The debug version would provide the hooks for the debugger and the production version would bypass them. Then, when you&#8217;re ready to deploy a HydraMVC application, just switch SWC&#8217;s. I wonder if we could even make this a compiler directive for a single SWC? Hmm&#8230; Anyway, I&#8217;m super excited. This framework is not only pretty cool as-is, but represents to me a ton of realizable potential that would really provide a very accessible, learnable, structured way to develop medium to large, <em>scalable, debuggable</em> Flex applications. Stay tuned. Download HydraMVC and let me know what you think.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lukesh.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lukesh.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lukesh.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lukesh.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lukesh.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lukesh.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lukesh.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lukesh.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lukesh.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lukesh.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=89&subd=lukesh&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lukesh.wordpress.com/2009/04/01/hydramvc-013-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d51d5d771dbee8cccba71a4059e055cb?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">lukesh</media:title>
		</media:content>

		<media:content url="http://lukesh.files.wordpress.com/2009/04/ac3bf0605bbc32940c854b762d3895a0.png" medium="image">
			<media:title type="html">HydraMVC.com Screenshot</media:title>
		</media:content>
	</item>
		<item>
		<title>Workaround to Flex 3 bug SDK-14806</title>
		<link>http://lukesh.wordpress.com/2009/03/31/workaround-to-flex-3-bug-sdk-14806/</link>
		<comments>http://lukesh.wordpress.com/2009/03/31/workaround-to-flex-3-bug-sdk-14806/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 16:56:34 +0000</pubDate>
		<dc:creator>lukesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lukesh.wordpress.com/?p=86</guid>
		<description><![CDATA[I think I have a decent workaround to this old bug, where you run into formatting problems if you want to use a custom borderSkin on a Panel or Alert. (I especially wanted to use a skin created with Degrafa.) In addition, I wanted to set up something where I could create a generic Panel [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=86&subd=lukesh&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I think I have a decent workaround to <a href="https://bugs.adobe.com/jira/browse/SDK-14806?rc=1" target="_blank">this old bug</a>, where you run into formatting problems if you want to use a custom borderSkin on a Panel or Alert. (I especially wanted to use a skin created with Degrafa.) In addition, I wanted to set up something where I could create a generic Panel skin to use throughout my application, but also use the skin for Alerts without it messing up the title bar. Even though it&#8217;s over a year old, <a href="http://dougmccune.com/blog/2008/01/12/calling-bullshit-on-a-resolved-flex-bug/" target="_blank">this post</a> is still getting remarks about the layout bug. </p>
<p>Admittedly, my workaround is a total hack. However, that&#8217;s why it&#8217;s called a workaround. I&#8217;ve been using it without issues, and wanted to make it public. <a href="http://lukesh.com/files/AlertTest.zip" target="_blank">Click here</a> to download a Flex project archive with the solution files. This is what it looks like:</p>
<p> </p>
<div class="wp-caption alignnone" style="width: 566px"><img title="Custom Panel / Alert Skin" src="http://www.lukesh.com/grabs/cb1f55ce9536949abbbdcdf662462370.png" alt="Custom Panel / Alert Skin" width="556" height="285" /><p class="wp-caption-text">Custom Panel / Alert Skin</p></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lukesh.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lukesh.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lukesh.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lukesh.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lukesh.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lukesh.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lukesh.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lukesh.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lukesh.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lukesh.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=86&subd=lukesh&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lukesh.wordpress.com/2009/03/31/workaround-to-flex-3-bug-sdk-14806/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d51d5d771dbee8cccba71a4059e055cb?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">lukesh</media:title>
		</media:content>

		<media:content url="http://www.lukesh.com/grabs/cb1f55ce9536949abbbdcdf662462370.png" medium="image">
			<media:title type="html">Custom Panel / Alert Skin</media:title>
		</media:content>
	</item>
		<item>
		<title>AdeptivMVC</title>
		<link>http://lukesh.wordpress.com/2009/03/03/adeptivmvc/</link>
		<comments>http://lukesh.wordpress.com/2009/03/03/adeptivmvc/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 10:42:08 +0000</pubDate>
		<dc:creator>lukesh</dc:creator>
				<category><![CDATA[Design and Creativity]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Math and Information Theory]]></category>
		<category><![CDATA[Technology and Science]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[patterns]]></category>

		<guid isPermaLink="false">http://lukesh.wordpress.com/?p=79</guid>
		<description><![CDATA[Basically, you know those times where if you have to trip over that creaky stair *one more time* you're going to go totally ape and remodel the entire downstairs? That's exactly what happened.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=79&subd=lukesh&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Some really interesting things are happening at andCulture these days. In addition to rocking the CSS/HTML/jQuery/AJAX suite of technologies, we&#8217;re building libraries for Flex like never before&#8211;using Flex for both back-end application-y RIA software and also as the framework for very rich UIs that look nothing like an app.</p>
<p>We&#8217;ve been consuming data from .NET, both SOAP and AMF, and from PHP via AMFPHP. Jason Kichline (<a href="http://twitter.com/jkichline">@jkichline</a>) has been doing some really interesting things with building abstraction classes in a project codenamed SudzC (SOAP classes for Obj-C / iPhone).</p>
<p>For most (ok, basically all) of our Flex projects we use <a href="http://puremvc.org/">PureMVC</a>, which is elegant, language agnostic, and quite minimal. However, it&#8217;s not without its drawbacks. Being language agnostic is nice when you want to develop for multiple platforms and not have to switch out your paradigm-parser, but not so hot when you actually want to take advantage of a platform&#8217;s stuff&#8211;like for instance, Flex&#8217;s event model. PureMVC rolls their own Observer pattern, which is really nerdy and wot not, but sometimes, you just want to use event bubbling / capture. And not have to implement Pipes.</p>
<p>Another interesting challenge of extracting a framework is finding the balance of modularity in encapsulation, and ease of use, so your team can actually build stuff quickly with it. For instance, we&#8217;ve got some solid application logic in our MVC, but you might want to switch out where the data actually comes from and not have to trust the developer to ensure that the Notifications are all where they need to be.</p>
<div class="wp-caption alignright" style="width: 316px"><img title="Package Structure" src="http://lukesh.com/grabs/5dd1dacb4cfb988377c963daa3c839bc.png" alt="Screengrab showing basic package structure of AdeptivMVC" width="306" height="527" /><p class="wp-caption-text">Screengrab showing basic package structure of AdeptivMVC</p></div>
<p>Our answer was kind of a crazy synthesis of a solution for each of these problems. First, we wrote a Plugin / Provider methodology for our framework, not unlike the Provider metaphor in .NET. So, our Model (Proxies) tell the data where to *go*, and *how* it interacts with the application, but Providers interact with the Proxies to actually *get* the data. Pretty nifty. Oh, and while we were at it, we kinda just rewrote PureMVC.</p>
<p>We&#8217;ll see if it works out. Basically, you know those times where if you have to trip over that creaky stair *one more time* you&#8217;re going to go totally ape and remodel the entire downstairs? That&#8217;s exactly what happened.</p>
<p>My mission was to take out all the annoying things about PureMVC and keep all the cool things. Kinda like Palm did with <a href="http://www.palm.com/us/products/phones/pre/ces-video.html" target="_blank">Pre and the iPhone</a>.</p>
<p>Testing it basically involved taking an existing PMVC application and seeing A. how difficult it was to retrofit the new framework and, B. make sure it still works. So far, retrofitting the &#8220;AdeptivMVC&#8221;, as I&#8217;m calling it, is totally easy to do, and regression testing seems to prove that stuff still works.</p>
<p>Now, we also get the added niceties of being able to use Singleton proxies if you want, and have multiple observers in a many-to-many relationship within the app. I added a &#8220;Relay&#8221; pattern in the mix verus the Multion thing that is used in PMVC, which basically makes things a hierarchy which allows for some neat event bubbling tricks.</p>
<p>I&#8217;ll try to get some demos and things up, maybe work on the Adeptiv framework initiative on adeptiv.com, and maybe even have some time to sleep in between doing billable work! Afterburners, engage.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lukesh.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lukesh.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lukesh.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lukesh.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lukesh.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lukesh.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lukesh.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lukesh.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lukesh.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lukesh.wordpress.com/79/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=79&subd=lukesh&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lukesh.wordpress.com/2009/03/03/adeptivmvc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d51d5d771dbee8cccba71a4059e055cb?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">lukesh</media:title>
		</media:content>

		<media:content url="http://lukesh.com/grabs/5dd1dacb4cfb988377c963daa3c839bc.png" medium="image">
			<media:title type="html">Package Structure</media:title>
		</media:content>
	</item>
		<item>
		<title>The nature of life, consciousness, and everything -or- Bad Sushi</title>
		<link>http://lukesh.wordpress.com/2009/01/09/the-nature-of-life-consciousness-and-everything-or-bad-sushi/</link>
		<comments>http://lukesh.wordpress.com/2009/01/09/the-nature-of-life-consciousness-and-everything-or-bad-sushi/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 07:11:18 +0000</pubDate>
		<dc:creator>lukesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[philosophy]]></category>

		<guid isPermaLink="false">http://lukesh.wordpress.com/?p=75</guid>
		<description><![CDATA[
Warning&#8211;non tech-related, quasi-philosophical, meta-existential, blah blah, so read at your own risk. Subtitled, need to write a technology post so this gets off my home page.


I can&#8217;t sleep. I&#8217;m kept awake by a series of haunting revelations in the form of what I can only describe as &#8220;the right questions&#8221; that seem to explain the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=75&subd=lukesh&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>
<strong>Warning&#8211;non tech-related, quasi-philosophical, meta-existential, blah blah, so read at your own risk. Subtitled, need to write a technology post so this gets off my home page.<br />
</strong></p>
<p>
I can&#8217;t sleep. I&#8217;m kept awake by a series of haunting revelations in the form of what I can only describe as &#8220;the right questions&#8221; that seem to explain the nature of life and reality in a profound juxtaposition of perfect clarity and haunting mystery.
</p>
<p>
<b>We all die</b>. All of us must wrestle and come to terms with the fundamental mysteries of reality. Whether you call it philosophy or religion, something needs to click into place inside our brains&#8211;a framework on which we can use to reconcile what seems to be the ultimate futility of life itself as the years blow by with such callous speed.
</p>
<p>
<b>What is life, anyway? Why do we consider the concept of our individual lives to be fundamentally equal to our conscious mind?</b>
</p>
<p>
We say that a fire dies. Is the life of the fire it&#8217;s own existence, or is it more deeply, the consuming of the wood, and the eminence of heat and light? I tremble as I think about it! We clench our consciousness as if it were the essence of life! Somehow we are so afraid to lose it, that if we die, go into the ground, lose our ability to traverse through time, feel, interact, reason&#8211;that we DIE. Is that death!? Maybe not!
</p>
<p>
Our bodies are just husks&#8211;sublime, mechanical devices that burn food. So are our brains, our minds, and our consciousnesses, that was born at a period of time, lives through periods of time, and will at a period of time, die. <b>Does the fact that we die at one period of time negate the fact that we are alive at another?! If the nature of our existence transcends time, when the time comes that we die, are we not still alive?!</b> (That is, we are no longer conscious, but our existence has been etched into the fabric of space-time!) Our choices forever impact the universe, and CANNOT BE REVERSED.
</p>
<p>
<b>We, dead, are a four-dimensional being, a being who&#8217;s existence simply IS. Life now is a process of growing that being. Our growth is complete when we die. Then we exist.</b>
</p>
<p>
When a fire dies, the heat and light it emits exist, and have permanent impact. The life of the flame is not defined essentially by its own self-awareness.
</p>
<p>
<b>Eternal life&#8211;what is it? Jesus defines it as simply, &#8220;knowing God&#8221;.</b> Does this confuse you?! How can I hear this and not feel the uncanny mystery of this truth at the core of my assumptions about reality? Life, is simply knowing God? This begs a redefinition of the very word, meaning, and nature of life itself.
</p>
<p>
<b>What is consciousness? Why is it so important to us?</b> Self-awareness, reason, memories. We somehow place our identities in how we feel and what makes us laugh. What gives us the framework to do this? It&#8217;s as if a flame would base its value on some obscure properties of its existence rather than the heat and light it emits, is it not!? So we die and are no longer conscious in time. What does it matter?! We say that we &#8220;have lived&#8221;&#8211;can we not say at the moment of death, <b>&#8220;I now LIVE&#8221;?!</b> I have completed my growth through time, and I now EXIST?! Is not this four-dimensional being of our lives not OUR VERY SOUL?!
</p>
<p>
<b>I move to separate the seemingly fundamental equality of the terms life, consciousness, identity, and soul.
</p>
<p>
I move to think of time as it is&#8211;equal in dimensional tangibility as height, width and depth. We can only see a slice of time at once with our current faculties, and this limitation is the construct of what we so dearly cling to as &#8220;consciousness&#8221;.</b>
</p>
<p>
<b>Our choices are IRREVOCABLE.</b> They have such a profound impact on our identity! If we make a choice yesterday, and it&#8217;s a bad one, we shake it off, and say, &#8220;well, I&#8217;m a new man today&#8221;&#8211;as if our identity is limited to this slice of time. If every day is a ring that we stack on a post, unique in size and shape, at the end of our lives we will see a <b>sculpture of individual identity.</b>
</p>
<p>
We are fluid beings, and can only grow and change so much in each slice of time&#8211;like a fire rapidly changes shape, but slowly grows from a small flame, to a giant bonfire, to embers, to ashes. We are instructed to daily &#8220;renew our minds.&#8221; This terminology is just adequate. Every immeasurable slice of time that passes, not only do our thoughts and choices define what we think in the next slice, but they are building and growing what someday will define us as our identity. <b>Our consciousness thereof is questionable as we define consciousness.</b>
</p>
<p>
I laugh inside when religions define the afterlife so neatly wrapped&#8211;&#8221;oh, I&#8217;ll see them in Heaven&#8221;. YOU HAVE NOT A CLUE how you will see, if you will see, what you will see. I&#8217;m sure even more today than ever that the book of Revelation is more profound truth than we can attempt to rationally deserialize from the &#8220;three-dimensionally-flattened&#8221; view of John&#8217;s revelations. <b>It&#8217;s like flatting a three-dimensional object to a two-dimensional drawing and attempting to examine it&#8217;s backside.</b>
</p>
<p>
Whether you ascribe to a theistic or non-theistic world view, you must come to reconcile life in the contexts of origin, meaning, purpose and destiny. The questions of consciousness, ethics, and what happens after you die simply must be addressed. I say this, because even if you can somehow brush them off now as if you don&#8217;t care, you will care sooner or later. I&#8217;m not saying all this to proselytize, or to &#8220;save you&#8221;&#8211;this is simply a self-serving act of somehow attempting to articulate the rage inside! Tonight feels like the culmination of years of thought to me, so inadequately expressed, yet, to me, life-defining. Even if you don&#8217;t believe in God, think of the wonder of the ability to transcend time and experience the essence of the dimension of time all at once&#8211;what it must look like. The timelines of all the men and women of history, their interaction, your life&#8211;all visible at once as a sculpture entitled &#8220;humankind&#8221;.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lukesh.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lukesh.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lukesh.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lukesh.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lukesh.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lukesh.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lukesh.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lukesh.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lukesh.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lukesh.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=75&subd=lukesh&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lukesh.wordpress.com/2009/01/09/the-nature-of-life-consciousness-and-everything-or-bad-sushi/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d51d5d771dbee8cccba71a4059e055cb?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">lukesh</media:title>
		</media:content>
	</item>
		<item>
		<title>New Disease Discovered: PISOFF Syndrome</title>
		<link>http://lukesh.wordpress.com/2008/12/08/new-disease-discovered-pisoff-syndrome/</link>
		<comments>http://lukesh.wordpress.com/2008/12/08/new-disease-discovered-pisoff-syndrome/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 23:18:46 +0000</pubDate>
		<dc:creator>lukesh</dc:creator>
				<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Technology and Science]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://lukesh.wordpress.com/?p=70</guid>
		<description><![CDATA[Disease:
&#8220;Programming In Spite Of Flex Framework syndrome&#8221; &#8211; A.k.a &#8220;PISOFF&#8221;, pronounced &#8220;pissoff&#8221;: A serious project-life-threatening disease that often goes undetected until it is too late. Occurs most frequently in the first few projects of a novice Flex developer, however rare cases can occur in intermediate to advanced Flex developers. In almost all cases, victims are intelligent, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=70&subd=lukesh&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><strong>Disease:</strong></p>
<p>&#8220;Programming In Spite Of Flex Framework syndrome&#8221; &#8211; A.k.a &#8220;PISOFF&#8221;, pronounced &#8220;pissoff&#8221;: A serious project-life-threatening disease that often goes undetected until it is too late. Occurs most frequently in the first few projects of a novice Flex developer, however rare cases can occur in intermediate to advanced Flex developers. In almost all cases, victims are intelligent, experienced programmers who are transitioning to Flex from other development environments that they have been proficient in.</p>
<p><strong>Symptoms:</strong></p>
<div>
<ol>
<li>Code bloat</li>
<li>&#8220;Freaky&#8221; problems (i.e. UI flickers / inconsistencies)</li>
<li>Maintainability / transference problems</li>
<li>Inconsistent methodology</li>
<li>Inconsistent user interface standards</li>
<li>Lack of encapsulation / code reuse</li>
<li>Increased development time</li>
<li>The feeling of &#8220;this has got to be easier&#8221;<br />
 </li>
</ol>
</div>
<div><strong>Causes:</strong></div>
<div>
<ol>
<li>Lack of knowledge and practiced skill of using and properly appropriating the tools available in a given framework.</li>
<li>The attitude that the learning curve vs. benefit of learning and appropriating the components of the Flex framework is too steep and the benefit too little.</li>
<li>Not enough time to learn the framework, but up against a deadline to produce a project in the framework.</li>
<li>Typically intelligent, experienced programmers will tend to draw similes like &#8220;oh X in Flex is just like Y in _____&#8221; and miss out on paradigms that are introduced in Flex that may not have a direct correlation in another language or appropriate best practices in another language that aren&#8217;t necessarily best practices in Flex.<br />
 </li>
</ol>
</div>
<div><strong>Remedy:</strong></div>
<div>
<ol>
<li>Place a priority in learning the framework and not just the minimum to draw something on the screen.</li>
<li>Make resources and practice material available.</li>
<li>Be willing to prioritize and accept that code will need to be refactored until you become really skilled in the framework.<br />
 </li>
</ol>
</div>
<div><strong>Rehab:</strong></div>
<div>
<ol>
<li>Unfortunately, existing code will need to be refactored. It&#8217;s tempting to say &#8220;it just works, so let&#8217;s leave it alone&#8221;, but not only will refactoring the code ensure that it is executed properly, but it will also provide a learning opportunity.</li>
<li>Timelines on existing and future projects will need to be adjusted to accommodate the required learning.<br />
 </li>
</ol>
</div>
<div><strong>Prevention:</strong></div>
<div>
<ol>
<li>Recognize that with every new framework, the risk of PISOFF exists, and that it can sneak up on you and bite you in the tail if you don&#8217;t preempt it, even if you consider yourself an advanced developer.</li>
<li>Don&#8217;t undervalue small exercise projects that exist only to learn what the framework provides.</li>
<li>Educate all developers about the risks, causes, and prevention of PISOFF.<br />
 </li>
</ol>
</div>
<div>I don&#8217;t want to be silly in presenting this as a disease. We need to label it and treat it like one; or, just like other diseases and disorders, you just brush it under the rug until you find yourself in a pine box. It&#8217;s not convenient, and it may not be immediately apparent if you aren&#8217;t aware of its existence, but it&#8217;s real and it&#8217;s deadly, and your project might have it.</div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lukesh.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lukesh.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lukesh.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lukesh.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lukesh.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lukesh.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lukesh.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lukesh.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lukesh.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lukesh.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=70&subd=lukesh&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lukesh.wordpress.com/2008/12/08/new-disease-discovered-pisoff-syndrome/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d51d5d771dbee8cccba71a4059e055cb?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">lukesh</media:title>
		</media:content>
	</item>
		<item>
		<title>Aurora Borealis in ActionScript</title>
		<link>http://lukesh.wordpress.com/2008/12/01/aurora-borealis-in-actionscript/</link>
		<comments>http://lukesh.wordpress.com/2008/12/01/aurora-borealis-in-actionscript/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 15:51:25 +0000</pubDate>
		<dc:creator>lukesh</dc:creator>
				<category><![CDATA[Design and Creativity]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Math and Information Theory]]></category>
		<category><![CDATA[Aurora]]></category>
		<category><![CDATA[Borealis]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Holiday]]></category>

		<guid isPermaLink="false">http://lukesh.wordpress.com/?p=64</guid>
		<description><![CDATA[
This weekend I threw together an algo to generate Aurora for a holiday ecard. I was really happy with the outcome. You can see the card here.
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=64&subd=lukesh&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://lukesh.com/files/hapcard2008/default.html" target="_blank"><img class="alignnone size-full wp-image-65" title="Screenshot" src="http://lukesh.files.wordpress.com/2008/12/picture-3.png?w=510&#038;h=407" alt="Screenshot" width="510" height="407" /></a></p>
<p><a href="http://lukesh.files.wordpress.com/2008/12/picture-3.png"></a>This weekend I threw together an algo to generate Aurora for a holiday ecard. I was really happy with the outcome. You can see the card <a href="http://lukesh.com/files/hapcard2008/default.html" target="_blank">here</a>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lukesh.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lukesh.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lukesh.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lukesh.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lukesh.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lukesh.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lukesh.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lukesh.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lukesh.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lukesh.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=64&subd=lukesh&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lukesh.wordpress.com/2008/12/01/aurora-borealis-in-actionscript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d51d5d771dbee8cccba71a4059e055cb?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">lukesh</media:title>
		</media:content>

		<media:content url="http://lukesh.files.wordpress.com/2008/12/picture-3.png" medium="image">
			<media:title type="html">Screenshot</media:title>
		</media:content>
	</item>
		<item>
		<title>Very Important Limitations of Generated Flex Data Classes</title>
		<link>http://lukesh.wordpress.com/2008/11/24/very-important-limitations-of-flex-data-services/</link>
		<comments>http://lukesh.wordpress.com/2008/11/24/very-important-limitations-of-flex-data-services/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 16:17:46 +0000</pubDate>
		<dc:creator>lukesh</dc:creator>
				<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Technology and Science]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://lukesh.wordpress.com/?p=56</guid>
		<description><![CDATA[You will need to know this at some point if you are interacting with SOAP in Flex, I guarantee it.
ISSUE #1: 
Types registered in SchemaTypeRegistry may overlap across different services.
Description: 
You have a UserService and a RoleService. Methods for both services return an ArrayOfString. This type is generated by Flex when you import the service [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=56&subd=lukesh&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>You will need to know this at some point if you are interacting with SOAP in Flex, I guarantee it.</p>
<p><strong>ISSUE #1: </strong></p>
<p>Types registered in SchemaTypeRegistry may overlap across different services.</p>
<p><strong>Description: </strong></p>
<p>You have a UserService and a RoleService. Methods for both services return an ArrayOfString. This type is generated by Flex when you import the service into the project. You call methods for each service simultaneously that both return an ArrayOfString. However, you get a type coercion problem. Why?</p>
<p><strong>Explanation:</strong> </p>
<p>When Flex imports a web service, it generates a Base{ServiceName} class. In this class, it registers types (like ArrayOfString) with a singleton called SchemaTypeRegistry when the service is instantiated. The problem is, it doesn&#8217;t qualify which ArrayOfString it&#8217;s talking about.</p>
<p>Therefore, when you instantiate UserService and call a method that returns ArrayOfString, the BaseUserService will map ArrayOfString to net&#8230;userservice.ArrayOfString. This works just great when you aren&#8217;t making asynchronous calls.</p>
<p>The problem arises when you make asynchronous calls to both UserService AND RoleService. The last service to register ArrayOfString with its corresponding ActionScript class wins. Then, when the result for the other service returns, it will try to explicitly cast a net&#8230;userservice.ArrayOfString to a net&#8230;roleservice.ArrayOfString and you will net a null result. It won&#8217;t error, because it uses the &#8220;as&#8221; keyword vs, an explicit cast (i.e. result as ArrayOfString, vs ArrayOfString(result)), which makes debugging even more mysterious.</p>
<p><strong>Workarounds:</strong></p>
<p>In my opinion, this is truly a bug in the framework vs a limitation. If you can make asynchronous calls, you should be able to asynchronously deserialize the results, plain and simple. However, we&#8217;ve only really found two plausible workarounds.</p>
<p>&#8220;Doctor, it hurts when I sit this way.&#8221;</p>
<p>&#8220;Then don&#8217;t sit that way.&#8221;</p>
<p>One workaround is to simply queue the calls. Wait until the first call returns, then instantiate the next web service and make the second call.</p>
<p>If you are into changing your back end to patronize the front end, you will need to make the return type unique.</p>
<p>Bon apetit.</p>
<p> </p>
<p><strong>ISSUE #2:</strong></p>
<p>MyMethod can&#8217;t return an object of with the type name MyMethodResult.</p>
<p><strong>Description:</strong></p>
<p>If you have a ListUsers class, and you return an object of type ListUsersResult, your code will compile but your application will break.</p>
<p><strong>Explanation:</strong></p>
<p>Again, the problem lies in the Base{Service} generated class. The result wrapper will not generate properly if you name your result object in this manner.</p>
<p><strong>Workarounds:</strong></p>
<p>Again, don&#8217;t sit that way. You simply cannot append &#8220;Result&#8221; to the end of your result object if it is named the same as the method itself.</p>
<p> </p>
<p><strong>ISSUE #3:</strong></p>
<p>Headers array gets overwritten.</p>
<p><strong>Description:</strong></p>
<p>You try to make a method call, but it sends an empty headers array, even after you&#8217;ve set the headers. </p>
<p><strong>Explanation:</strong></p>
<p>When Flex generates the method functions abstraction classes for your service, instead of &#8220;passing along the headers&#8221; as the ASDoc would indicate, it simply creates an empty array. Can you guess where this is found. Correct! The Base{Service} class. The first line after the method signature will be &#8220;var headerArray:Array = new Array();&#8221;.</p>
<p><strong>Workarounds:</strong></p>
<p>We have to remember to do a global search and replace for &#8220;var headerArray:Array = new Array();&#8221; replaced with &#8220;var headerArray:Array = this.headers;&#8221; each time we regenerate the web service abstraction classes when we need to preserve headers for method calls.</p>
<p> </p>
<p><strong>ISSUE #4:</strong></p>
<p>You can&#8217;t have a service with a method named .logout()</p>
<p><strong>Description:</strong></p>
<p>If you name your method &#8220;logout&#8221; (i.e. for an authentication class), your generated class won&#8217;t compile.</p>
<p><strong>Explanation:</strong></p>
<p>The inheritance chain for the web service abstraction classes is: MyService HAS BaseCubeReportService EXTENDS AbstractWebService EXTENDS AbstractService HAS AsyncRequest. AbstractService has a public function logout():void that calls the logout() method of it&#8217;s asyncRequest object. When Flex Builder attempts to generate the logout abstraction method in your service class, it will error as though you were trying to override this function.</p>
<p><strong>Workarounds:</strong></p>
<p>Again, avoid usage of &#8220;logout&#8221;.</p>
<p> </p>
<p>I sincerely hope this saves you the hours of debugging that we invested to gain this knowledge.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lukesh.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lukesh.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lukesh.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lukesh.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lukesh.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lukesh.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lukesh.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lukesh.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lukesh.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lukesh.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lukesh.wordpress.com&blog=949562&post=56&subd=lukesh&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lukesh.wordpress.com/2008/11/24/very-important-limitations-of-flex-data-services/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d51d5d771dbee8cccba71a4059e055cb?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">lukesh</media:title>
		</media:content>
	</item>
	</channel>
</rss>