<?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>sybersnake</title>
	<atom:link href="http://sybersnake.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://sybersnake.com</link>
	<description>Bender called me a flesh bag.</description>
	<lastBuildDate>Tue, 10 May 2011 20:25:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Flash CS5 Cannot load SWF during &#8220;Test Movie&#8221; or Startup Screen is blank.</title>
		<link>http://sybersnake.com/2011/05/10/flash-cs5-cannot-load-swf-during-test-movie-or-startup-screen-is-blank/</link>
		<comments>http://sybersnake.com/2011/05/10/flash-cs5-cannot-load-swf-during-test-movie-or-startup-screen-is-blank/#comments</comments>
		<pubDate>Tue, 10 May 2011 20:24:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://sybersnake.com/?p=236</guid>
		<description><![CDATA[On OSX this typically means that you have moved your &#8220;Home&#8221; folder to another drive or have another drive mounted on the root /Users folder. To resolve this issue you will need to create a symbolic link to the /Users folder from the /Volumes folder. In my scenario, my Volume Name is &#8220;Users&#8221; which is [...]]]></description>
			<content:encoded><![CDATA[<p>On OSX this typically means that you have moved your &#8220;Home&#8221; folder to another drive or have another drive mounted on the root /Users folder.</p>
<p>To resolve this issue you will need to create a symbolic link to the /Users folder from the /Volumes folder.</p>
<p>In my scenario, my Volume Name is &#8220;Users&#8221; which is being mounted to /Users using fstab.</p>
<blockquote><p>
$ cd /Volumes<br />
$ sudo ln -sf /Users ./Users
</p></blockquote>
<p>In FINDER, you can goto /Volumes and it will show a hard disk icon which will direct you to /Users folder.</p>
<p>This fixes an issue with the startup screen and the test/debug movie functionality.</p>
]]></content:encoded>
			<wfw:commentRss>http://sybersnake.com/2011/05/10/flash-cs5-cannot-load-swf-during-test-movie-or-startup-screen-is-blank/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netatalk on Solaris ZFS</title>
		<link>http://sybersnake.com/2011/02/03/netatalk-on-solaris-zfs/</link>
		<comments>http://sybersnake.com/2011/02/03/netatalk-on-solaris-zfs/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 16:39:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://sybersnake.com/?p=228</guid>
		<description><![CDATA[I&#8217;m working on some performance tuning with Netatalk on Solaris 11 Express. The following volume configuration increases performance 4 fold for high file operation small writes such as transferring 1 gb folders with subversion metadata. allow:@staff rwlist:@staff ea:sys options:caseinsensitive,usedots,nohex,noadouble,volcharset ZFS must be set to caseinsensitive. I also move the dbpath to another disk or nvram. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on some performance tuning with Netatalk on Solaris 11 Express.</p>
<p>The following volume configuration increases performance 4 fold for high file operation small writes such as transferring 1 gb folders with subversion metadata.</p>
<blockquote><p>allow:@staff rwlist:@staff ea:sys options:caseinsensitive,usedots,nohex,noadouble,volcharset</p></blockquote>
<p>ZFS must be set to caseinsensitive.</p>
<p>I also move the dbpath to another disk or nvram.</p>
<blockquote><p>:DEFAULT: options:usedots,nohex,nostat,nofileid dbpath:/var/netatalk-$v/</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sybersnake.com/2011/02/03/netatalk-on-solaris-zfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex, AIR Projects without Flex, Part 1</title>
		<link>http://sybersnake.com/2010/08/15/flex-air-projects-without-flex-part-1/</link>
		<comments>http://sybersnake.com/2010/08/15/flex-air-projects-without-flex-part-1/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 00:41:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://sybersnake.com/?p=212</guid>
		<description><![CDATA[MXML is a great markup language. It is getting more extensible all the time and, often, is something you want to use in non-flex projects. In order to provide complete understanding on how to build MXML web and desktop applications ( Adobe AIR ) without the Flex framework; I am embarking on this multi-part journey [...]]]></description>
			<content:encoded><![CDATA[<p>MXML is a great markup language.  It is getting more extensible all the time and, often, is something you want to use in non-flex projects.  In order to provide complete understanding on how to build MXML web and desktop applications ( Adobe AIR ) without the Flex framework; I am embarking on this multi-part journey to divulge the inner workings of Flex and AIR.</p>
<p>Flash Builder ( i.e. Flex Builder ) provides a very convenient wrapper and configuration for building Flex and AIR applications.  It does not allow, by code-hinting, extending a non IUIComponent or UIComponent object in MXML e.g. &lt;l:Sprite /&gt; .  So we do this with a little trickery.</p>
<p>After creating your default application ( be it either Flex or AIR ) you will need to create a ActionScript main file.  Unlike other languages, the main in ActionScript becomes implemented at the flash.display.Stage and all of your other assets build from there.  I tend to call this class Main.as, it can be placed anywhere in the source folder.  Next you will have to manually change the &#8220;Default Application&#8221; MXML file to extend your Main.as.  This is simply done by adding the namespace xmlns:local=&#8221;*&#8221; ( whereas * is the same package the Main exists in ).  Then change &lt;s:WindowedApplication /&gt; or &lt;s:Application/&gt; to &lt;local:Main /&gt;.  The application should compile without errors.</p>
<p>Note, however, nothing displays on the screen.  I usually add a trace statement in the Main constructor that allows me to verify that everything just started ok.</p>
<p>The ability to inject code at the stage level easily allows for not only bootstrapping of Pure ActionScript projects but also the ability to do a variety of tasks before starting Flex at all.  Some instances, this may be a dependency checker/updater of some kind.  In AIR, this could be a splash screen or some other useful action.</p>
<p>Here is a Zip file containing an example AIR application.<br />
<a href='http://sybersnake.com/wp-content/uploads/2010/08/NoFlexAir.zip'>NoFlexAir.zip</a></p>
<p>Thats it for the first post, hope it was helpful.  My email is at the top of this page if you have any questions.</p>
<p>P.S.<br />
Using the non-system-chrome takes a lot of resources and essentially allows draw space over your entire screen estate.  I have a inkling that the Popup / Context Components draw in some super-layer however I will cover that in another post.</p>
]]></content:encoded>
			<wfw:commentRss>http://sybersnake.com/2010/08/15/flex-air-projects-without-flex-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Progressive Flash Video Publish</title>
		<link>http://sybersnake.com/2010/08/02/progressive-flash-video-publish/</link>
		<comments>http://sybersnake.com/2010/08/02/progressive-flash-video-publish/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 15:44:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://sybersnake.com/?p=196</guid>
		<description><![CDATA[I was working on something this week and was unable to find any help on google on how to publish ultra quality video with the flash player. The idea was to just buffer the entire video&#8217;s contents and slowly upload it. Its actually more simple than it looks however the ActionScript 3 docs don&#8217;t cover [...]]]></description>
			<content:encoded><![CDATA[<p>I was working on something this week and was unable to find any help on google on how to publish ultra quality video with the flash player.  The idea was to just buffer the entire video&#8217;s contents and slowly upload it.  Its actually more simple than it looks however the ActionScript 3 docs don&#8217;t cover this at all.</p>
<p><strong>Configuration</strong><br />
Here is the low down, the Camera.quality setting always drops frames &#8212; even when you also have the bandwidth setting enabled.  Setting Camera.quality to 0 then the bandwidth setting to something large such as 500,000 kb/s will provide an excellent video.  In the mean time, also maximize your camera frame-size and frame-rate.  </p>
<p><strong>The Buffer</strong><br />
Watching the bufferLength property to see the size of your buffer.  Removing the devices from the NetStream when you want to finish recording but remember that you have to wait for bufferLength to 0 out before closing the connection or your upload will be lost forever.</p>
]]></content:encoded>
			<wfw:commentRss>http://sybersnake.com/2010/08/02/progressive-flash-video-publish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GRUB_ boot problem.</title>
		<link>http://sybersnake.com/2010/07/28/grub-_-boot-problem/</link>
		<comments>http://sybersnake.com/2010/07/28/grub-_-boot-problem/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 15:18:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>

		<guid isPermaLink="false">http://sybersnake.com/?p=205</guid>
		<description><![CDATA[So I updated my OpenFiler storage appliance a few days ago and I had to restart it for the first time since the update. To my surprise upon reboot, I got the following &#8220;non-error&#8221; message &#8220;GRUB_&#8221;. No other message or error code.( OpenFiler does not have a LiveCD ) I searched all over google only [...]]]></description>
			<content:encoded><![CDATA[<p>So I updated my <a href="http://www.openfiler.com/">OpenFiler storage appliance</a> a few days ago and I had to restart it for the first time since the update.  To my surprise upon reboot, I got the following &#8220;non-error&#8221; message &#8220;GRUB_&#8221;.  No other message or error code.( OpenFiler does not have a LiveCD )  I searched all over google only to find out that most people said this was some sort of error that required a LiveCD to reinstall GRUB.  Well, I decided to hit the F11 key on restart ( to get the list of available devices to boot from ).  Upon manually selecting the correct HD, I was able to boot.  The moral of the story is, make sure your computer is attempting to boot the correct hard disk.  I went into the BIOS and set that hard disk as the default boot device.  Works just fine now.</p>
<p>Cheers,<br />
-J</p>
<p>P.S. On another topic, the error &#8220;Comreset Failed (errno=-16)&#8221; has the good possibility of meaning the power for that drive has failed and to try another molex connector ( I just found out two connectors, in one chain of the power supply, just failed on me ).  If it isn&#8217;t the power source ( you can tell the drive is spinning ) then its either a bug or the drive itself is causing a problem.  Check SMART status. </p>
]]></content:encoded>
			<wfw:commentRss>http://sybersnake.com/2010/07/28/grub-_-boot-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CommitOnly is broken on BindingUtils, vote now!</title>
		<link>http://sybersnake.com/2010/07/26/commitonly-is-broken-on-bindingutils-vote-now/</link>
		<comments>http://sybersnake.com/2010/07/26/commitonly-is-broken-on-bindingutils-vote-now/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 21:43:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://sybersnake.com/?p=200</guid>
		<description><![CDATA[BindingUtils.bindSetter CommitOnly is broken and it got marked community so vote on this issue now! https://bugs.adobe.com/jira/browse/SDK-26901]]></description>
			<content:encoded><![CDATA[<p>BindingUtils.bindSetter CommitOnly is broken and it got marked community so vote on this issue now!</p>
<p><a href="https://bugs.adobe.com/jira/browse/SDK-26901">https://bugs.adobe.com/jira/browse/SDK-26901</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sybersnake.com/2010/07/26/commitonly-is-broken-on-bindingutils-vote-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I know you don&#8217;t need to hear from me regarding semantics but..</title>
		<link>http://sybersnake.com/2010/07/13/i-know-you-dont-need-to-hear-from-me-regarding-semantics-but/</link>
		<comments>http://sybersnake.com/2010/07/13/i-know-you-dont-need-to-hear-from-me-regarding-semantics-but/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 03:40:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://sybersnake.com/?p=193</guid>
		<description><![CDATA[The use of &#8216;on&#8217; and &#8216;handle&#8217; seems to daunt me. Some people do it the way I think is correct but most don&#8217;t; so here it is. &#8216;ON&#8217; is used when self or this is the dispatcher of said event you are listening to. If you extend spark Group and listen to Creation Complete then [...]]]></description>
			<content:encoded><![CDATA[<p>The use of &#8216;on&#8217; and &#8216;handle&#8217; seems to daunt me.  Some people do it the way I think is correct but most don&#8217;t; so here it is.</p>
<p>&#8216;ON&#8217; is used when self or this is the dispatcher of said event you are listening to.  If you extend spark Group and listen to Creation Complete then it should be onCreationComplete</p>
<p>but..</p>
<p>&#8220;HANDLE&#8217; if the dispatcher is external.  If Class A is listening to Class B&#8217;s CreationComplete then you should name the internal handler handle{ObjectName}_CreationComplete.</p>
<p>Hope that helps. This will keep your code much easier to read in the future to determine the external and internal dependencies.</p>
<p>That is all!</p>
]]></content:encoded>
			<wfw:commentRss>http://sybersnake.com/2010/07/13/i-know-you-dont-need-to-hear-from-me-regarding-semantics-but/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create a proper deep clone in AS3</title>
		<link>http://sybersnake.com/2009/07/25/create-a-proper-deep-clone-in-as3/</link>
		<comments>http://sybersnake.com/2009/07/25/create-a-proper-deep-clone-in-as3/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 21:19:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://sybersnake.com/?p=176</guid>
		<description><![CDATA[I&#8217;ve implemented this in com.emoten.core.data.JKDataObject in EmotenCore.swc The [Transient] metadata is very important. ( keeps it from tying to infinitely clone itself ) I looked elsewhere and it seems that no-one has noticed that the [RemoteClass] metadata is required to reconstruct the class from its AMF-serialized state. ?View Code ACTIONSCRIPT1 2 3 4 5 6 [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve implemented this in com.emoten.core.data.JKDataObject in EmotenCore.swc</p>
<p>The [Transient] metadata is very important. ( keeps it from tying to infinitely clone itself )</p>
<p>I looked elsewhere and it seems that no-one has noticed that the [RemoteClass] metadata is required to reconstruct the class from its AMF-serialized state.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p176code3'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1763"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code" id="p176code3"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#91;</span>Transient<span style="color: #66cc66;">&#93;</span>
		<span style="color: #808080; font-style: italic;">/**
		 * Creates a Clone of this class.
		 * &lt;p&gt;
		 * In order for your returned class to be typed correctly you must put the following
		 * above &quot;public class&quot;
		 * 
		 * &lt;code&gt;
		 * [RemoteClass(alias=&quot;com.emoten.core.data.JKDataObject&quot;)]
		 * &lt;/code&gt;
		 * 
		 * Replacing &quot;com.emoten.core.data.JKDataObject&quot; with your class's FQN.
		 * 
		 * @return		A new copy of your class.
		 */</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> clone<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #66cc66;">*</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> ba:ByteArray = <span style="color: #000000; font-weight: bold;">new</span> ByteArray<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			ba.<span style="color: #006600;">writeObject</span><span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">this</span> <span style="color: #66cc66;">&#41;</span>;
			ba.<span style="color: #0066CC;">position</span> = <span style="color: #cc66cc;">0</span>;
			<span style="color: #b1b100;">return</span> ba.<span style="color: #006600;">readObject</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>


<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p176code4'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1764"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p176code4"><pre class="actionscript" style="font-family:monospace;">        <span style="color: #66cc66;">&#91;</span>RemoteClass<span style="color: #66cc66;">&#40;</span>alias=<span style="color: #ff0000;">&quot;com.emoten.core.data.JKDataObject&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> JKDataObject <span style="color: #0066CC;">extends</span> JKObject <span style="color: #0066CC;">implements</span> Cloneable</pre></td></tr></table></div>

<p>UPDATE: Krilnon over at Kirupa made a good point I forgot to cover.  The restrictions are that of the AMF specification.  You cannot pass things like DisplayObjects and you cannot have required constructor arguments.  If you don&#8217;t have those, your cool.  The clone() functionality is only really intended for data models.<br />
<a href="http://www.kirupa.com/forum/showpost.php?p=2489122&#038;postcount=597">http://www.kirupa.com/forum/showpost.php?p=2489122&#038;postcount=597</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sybersnake.com/2009/07/25/create-a-proper-deep-clone-in-as3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The replacement of EventDispatcher, 26% faster</title>
		<link>http://sybersnake.com/2009/07/21/the-replacement-of-eventdispatcher-26-faster/</link>
		<comments>http://sybersnake.com/2009/07/21/the-replacement-of-eventdispatcher-26-faster/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 16:03:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://sybersnake.com/?p=147</guid>
		<description><![CDATA[I designed a pure ActionScript event method following a similar API of JKEvent. In most circumstances it just barely beats out the speed of the native EventDispatcher but EventDispatcher is left in the dust when you start timing the whole event lifecycle: &#8220;connect, dispatch, disconnect, dispatch&#8221;. Cons: You don&#8217;t get priority Pros: You get Silent [...]]]></description>
			<content:encoded><![CDATA[<p>I designed a pure ActionScript event method following a similar API of <a href="http://labs.emoten.com/projects/Juki/Juki%20Event%20Pattern.pdf">JKEvent</a>.  In most circumstances it just barely beats out the speed of the native EventDispatcher but EventDispatcher is left in the dust when you start timing the whole event lifecycle: &#8220;connect, dispatch, disconnect, dispatch&#8221;.
</p>
<p><strong>Cons:</strong>  You don&#8217;t get priority</p>
<p><strong>Pros:</strong> You get Silent Events, Argument Events, Remove All(event connections) from Observer, Remove All(event connections) from Sender.  Its fast.</p>
<p><p><strong>How it works:</strong> Its built using Dictionaries and LinkedLists.  Turned out pretty good since I wrote it last week and never tried to actually run it until now.<br />
<img src="http://sybersnake.com/images/NotificationCenter Performance Results.png" alt="Results" width="100%" height="135" align="left" />
</p>
<p>I recorded a variance of 0.5%+/-.</p>
<p>I licensed EmotenCore under LGPL and it is currently distributed as a compiled library.  <br/><br />
Here is the License: <a href="http://code.google.com/p/jedai/source/browse/trunk/client/docs/license/EmotenCore-License.txt">License</a> Here is the SWC: <a href="http://code.google.com/p/jedai/source/browse/trunk/client/lib/EmotenCore.swc">EmotenCore.swc</a> Here is the docs: <a href="http://labs.emoten.com/projects/EmotenCore/docs/html/">Emoten Core Docs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sybersnake.com/2009/07/21/the-replacement-of-eventdispatcher-26-faster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JKAbstractTranslatorLink &amp; JKTranslatorTunnel</title>
		<link>http://sybersnake.com/2009/07/18/jkabstracttranslatorlink-jktranslatortunnel/</link>
		<comments>http://sybersnake.com/2009/07/18/jkabstracttranslatorlink-jktranslatortunnel/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 22:43:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://sybersnake.com/?p=139</guid>
		<description><![CDATA[I&#8217;ve built this methodology for allowing the easy design and implementation of sequential bi-directional data translation using the InputFlowConnector / InputFlowTerminator interface model. I&#8217;ve uploaded the example here: http://labs.emoten.com/projects/Juki/JKAbstractTranslatorLink/TranslatorTunnelTest.html Note: The Easy User Input Translator does not understand AM/PM. My first reference implementation is using the class JKTranslatorTunnel as a two-way binding mechanism with translation. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve built this methodology for allowing the easy design and implementation of sequential bi-directional data translation using the InputFlowConnector / InputFlowTerminator interface model.</p>
<p>I&#8217;ve uploaded the example here: <a href="http://labs.emoten.com/projects/Juki/JKAbstractTranslatorLink/TranslatorTunnelTest.html">http://labs.emoten.com/projects/Juki/JKAbstractTranslatorLink/TranslatorTunnelTest.html</a><br />
<strong>Note:</strong> The Easy User Input Translator does not understand AM/PM.</p>
<p>My first reference implementation is using the class JKTranslatorTunnel as a two-way binding mechanism with translation.  Essentially it makes a 2-3 line implementation to bind your Model object to some sort of View with translation.  My example is a case where the Model contains a integer property representing Military time and the view displays Standard time.  I&#8217;ve also attached a user-input translator that converts shorthand input to Standard time.  This comes in handy so we can translate shorthand to standard then pass the standard to the translator that will translate that into military time and update the model.  At the same time it will also format the View.</p>
<p>The reference implementation in Flex looks like this.  &#8220;in1&#8243;, &#8220;in2&#8243; are both TextInput UIControls.  JKAbstractTranslatorLink is a LinkedListEntry.  To add many items into the translation link just keep on populating the &#8220;.next&#8221; or &#8220;output&#8221;.<br />
<a href="http://labs.emoten.com/projects/EmotenCore/docs/html/com_emoten_core_data_JKAbstractTranslatorLink.html">Emoten Core Docs</a></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p139code6'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1396"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code" id="p139code6"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>fx:Script<span style="color: #66cc66;">&gt;</span>
        <span style="color: #66cc66;">&lt;!</span><span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span>
            <span style="color: #0066CC;">import</span> com.<span style="color: #006600;">emoten</span>.<span style="color: #006600;">core</span>.<span style="color: #0066CC;">data</span>.<span style="color: #006600;">translators</span>.<span style="color: #006600;">JKEasyUserTimeInputTanslatorLink</span>;
            <span style="color: #0066CC;">import</span> com.<span style="color: #006600;">emoten</span>.<span style="color: #006600;">core</span>.<span style="color: #0066CC;">data</span>.<span style="color: #006600;">LinkedList</span>;
            <span style="color: #0066CC;">import</span> com.<span style="color: #006600;">emoten</span>.<span style="color: #006600;">core</span>.<span style="color: #0066CC;">data</span>.<span style="color: #006600;">JKAbstractTranslatorLink</span>;
            <span style="color: #0066CC;">import</span> com.<span style="color: #006600;">emoten</span>.<span style="color: #006600;">core</span>.<span style="color: #0066CC;">data</span>.<span style="color: #006600;">translators</span>.<span style="color: #006600;">JKMilitaryTimeTranslatorLink</span>;
            <span style="color: #0066CC;">import</span> com.<span style="color: #006600;">emoten</span>.<span style="color: #006600;">core</span>.<span style="color: #0066CC;">data</span>.<span style="color: #006600;">JKTranslatorTunnel</span>;
&nbsp;
            protected <span style="color: #000000; font-weight: bold;">var</span> _tunnel:JKTranslatorTunnel;
&nbsp;
            <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> onCompleteEvent<span style="color: #66cc66;">&#40;</span> event:<span style="color: #66cc66;">*</span>=<span style="color: #000000; font-weight: bold;">null</span> <span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
            <span style="color: #66cc66;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">var</span> ls:JKAbstractTranslatorLink = <span style="color: #000000; font-weight: bold;">new</span> JKMilitaryTimeTranslatorLink<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
                    ls.<span style="color: #006600;">output</span><span style="color: #66cc66;">&#40;</span> DirectionEnum.<span style="color: #006600;">FORWARD</span>, <span style="color: #000000; font-weight: bold;">new</span> JKEasyUserTimeInputTanslatorLink<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
                _tunnel = <span style="color: #000000; font-weight: bold;">new</span> JKTranslatorTunnel<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">this</span>.<span style="color: #006600;">in1</span>, <span style="color: #ff0000;">&quot;text&quot;</span>, <span style="color: #0066CC;">this</span>.<span style="color: #006600;">in2</span>, <span style="color: #ff0000;">&quot;text&quot;</span>, ls <span style="color: #66cc66;">&#41;</span>;
&nbsp;
&nbsp;
            <span style="color: #66cc66;">&#125;</span>
        <span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&gt;</span>
    <span style="color: #66cc66;">&lt;/</span>fx:Script<span style="color: #66cc66;">&gt;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://sybersnake.com/2009/07/18/jkabstracttranslatorlink-jktranslatortunnel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: sybersnake.com @ 2012-02-07 02:54:33 -->
