<?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>shaun smith</title>
	<atom:link href="http://shaun.boyblack.co.za/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://shaun.boyblack.co.za/blog</link>
	<description>Flash, Flex, Ruby - Cape Town, SA</description>
	<lastBuildDate>Wed, 10 Mar 2010 12:09:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tuning The Legs</title>
		<link>http://shaun.boyblack.co.za/blog/2010/03/10/tuning-the-legs/</link>
		<comments>http://shaun.boyblack.co.za/blog/2010/03/10/tuning-the-legs/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 12:09:01 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=902</guid>
		<description><![CDATA[The Robotlegs MVCS implementation was designed to be convenient: quick-n-easy for common use cases. Nothing is free, of course, and that convenience comes at a cost. I want to highlight a few things that can be tweaked to improve performance for applications that really need it.
Automatic Mediation
In order to determine the scope of a view [...]]]></description>
			<content:encoded><![CDATA[<p>The Robotlegs MVCS implementation was designed to be convenient: quick-n-easy for common use cases. Nothing is free, of course, and that convenience comes at a cost. I want to highlight a few things that can be tweaked to improve performance for applications that really need it.</p>
<h3>Automatic Mediation</h3>
<p>In order to determine the scope of a view component, Robotlegs listens to the contextView for bubbling capture-phase ADDED_TO_STAGE events:</p>
<p><a href="http://github.com/robotlegs/robotlegs-framework/blob/v1.0.3/src/org/robotlegs/base/MediatorMap.as#L233">MediatorMap.as#L233</a><br />
<a href="http://github.com/robotlegs/robotlegs-framework/blob/v1.0.3/src/org/robotlegs/base/MediatorMap.as#L260">MediatorMap.as#L260</a></p>
<p>Every display object that lands on the stage inside the contextView is checked against a mapping dictionary. This can be quite expensive for complex display object hierarchies where there is a lot of re-parenting. It&#8217;s also the only option available if you want to keep your view components completely framework-unaware. If, however, you&#8217;re prepared to modify your components slightly (it&#8217;s a one-liner) then you can try out this utility:</p>
<p><a href="http://github.com/eidiot/robotlegs-utilities-LazyMediator">http://github.com/eidiot/robotlegs-utilities-LazyMediator</a></p>
<p>Instead of listening for ADDED_TO_STAGE events emitted by every component, we listen only for custom events dispatched by view components that explicitly require mediation.</p>
<p>Note: This utility currently only supports the MediatorMap and needs to be expanded to support the ViewMap. Fork and improve!</p>
<h3>Default Injection Points</h3>
<p>The actors in the MVCS package have a number of pre-configured injection points (dependencies). When you extend mvcs.Command all you are really doing is inheriting some dependencies:</p>
<p><a href="http://github.com/robotlegs/robotlegs-framework/blob/v1.0.3/src/org/robotlegs/mvcs/Command.as#L23">mvcs/Command.as#L23</a></p>
<p>Whilst handy, it is quite seldom that we actually use all of those in a given Command.</p>
<p>A much cleaner, and ever-so-slightly cheaper approach is to declare only the dependencies that you actually need. Instead of extending Actor or Command (this doesn&#8217;t work so well for the Mediator class), just create a vanilla class and declare your dependencies manually:</p>
<pre>public class MyCommand
{
	[Inject]
	public var injector:IInjector;

	public function execute():void
	{
		injector.mapClass( Vehicle, Car );
	}
}
</pre>
<p>Remember, the Robotlegs apparatus is already mapped for you if you need anything:</p>
<p><a href="http://github.com/robotlegs/robotlegs-framework/blob/v1.0.3/src/org/robotlegs/mvcs/Context.as#L190">mvcs/Context.as#L190</a></p>
<p>Notice that the IEventMap is not mapped as a value or singleton &#8211; you&#8217;ll get a new IEventMap instance whenever you ask for one.</p>
<p>That&#8217;s it for now!</p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2010/03/10/tuning-the-legs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Robotlegs v1.0.0 &#8211; Out Now!</title>
		<link>http://shaun.boyblack.co.za/blog/2009/11/26/robotlegs-v1-0-0-out-now/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/11/26/robotlegs-v1-0-0-out-now/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 23:18:56 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=895</guid>
		<description><![CDATA[Robotlegs AS3 v1.0.0 has been released 
A huge big &#8220;Thank You&#8221; to everyone involved. Let the &#8220;utility building&#8221; begin!
Robotlegs is an automated dependency injection framework for Flash, Flex and AIR.
]]></description>
			<content:encoded><![CDATA[<p><strong><a title="Robotlegs AS3" href="http://www.robotlegs.org/">Robotlegs AS3</a> v1.0.0 has been released </strong></p>
<p>A huge big &#8220;Thank You&#8221; to everyone involved. Let the &#8220;utility building&#8221; begin!</p>
<p><em>Robotlegs is an automated dependency injection framework for Flash, Flex and AIR.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/11/26/robotlegs-v1-0-0-out-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OS X Git Prompt</title>
		<link>http://shaun.boyblack.co.za/blog/2009/11/15/os-x-git-prompt/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/11/15/os-x-git-prompt/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 01:26:37 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Resources]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[prompt]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=879</guid>
		<description><![CDATA[I&#8217;m currently using a modified version of git-prompt that looks something like this:


If you want to try it out, you can download this zip-ball:
git-prompt.zip
Unpack that into your User folder, and add this to your bash .profile:
# Git Prompt - Modified from: http://volnitsky.com/project/git-prompt/
[[ $- == *i* ]] &#38;&#38; . ~/git-prompt/git-prompt.sh
Tip: You can open your .profile from [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently using a modified version of <a title="Git-prompt" href="http://volnitsky.com/project/git-prompt/">git-prompt</a> that looks something like this:</p>
<p><img class="alignnone size-full wp-image-885" title="Git-prompt" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/11/Git-prompt1.png" alt="Git-prompt" width="499" height="558" /><br />
<span id="more-879"></span></p>
<p>If you want to try it out, you can download this zip-ball:</p>
<p><a href="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/11/git-prompt.zip">git-prompt.zip</a></p>
<p>Unpack that into your User folder, and add this to your bash .profile:</p>
<pre># Git Prompt - Modified from: http://volnitsky.com/project/git-prompt/
[[ $- == *i* ]] &amp;&amp; . ~/git-prompt/git-prompt.sh</pre>
<p>Tip: You can open your .profile from your terminal like so:</p>
<pre>open ~/.profile</pre>
<p>Note: You will need to start a new shell session after editing that file in order to see the changes.</p>
<p>I use Nano as my default bash text editor. If you want that, add this to your .profile:</p>
<pre># Use the nano text editor
export EDITOR="nano"</pre>
<p>And for the Terminal.app style:</p>
<p><img class="alignnone size-full wp-image-883" title="Terminal-prefs" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/11/Terminal-prefs.png" alt="Terminal-prefs" width="500" height="386" /></p>
<p><a href="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/11/Power-User-Pro.terminal.zip">Power-User-Pro.terminal.zip</a></p>
<p>The shell commands (copy-paste):</p>
<pre>mkdir Test
cd Test/
git init
touch somefile
git add somefile
git commit -m "commit message"
echo "hi" &gt; somefile
git add somefile
git commit -m "second commit"
git checkout -b temp
echo "hello" &gt; somefile
git add .
git commit -m "3rd commit"</pre>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/11/15/os-x-git-prompt/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Robotliz 2 &#8211; A Six Minute Cleanup</title>
		<link>http://shaun.boyblack.co.za/blog/2009/11/12/robotliz-2-a-six-minute-cleanup/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/11/12/robotliz-2-a-six-minute-cleanup/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 12:38:39 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=874</guid>
		<description><![CDATA[Just a quickie &#8211; I cleaned up the Robotliz app a little. In this short vid I walk through the new structure and touch on some light Git/GitHub flows:

The (better, but not awesome) code is over at:
http://github.com/darscan/SillyStockPriceExample/tree/robotlegs
]]></description>
			<content:encoded><![CDATA[<p>Just a quickie &#8211; I cleaned up the <a title="Robotliz – Using Robotlegs like Swiz in 20 minutes" href="http://shaun.boyblack.co.za/blog/2009/11/10/robotliz-using-robotlegs-like-swiz-in-20-minutes/">Robotliz app</a> a little. In this short vid I walk through the new structure and touch on some light Git/GitHub flows:</p>
<p><a title="Robotliz 2 - A quick cleanup" href="http://vimeo.com/7569666"><img class="alignnone size-full wp-image-868" title="RobotlegsVimeo" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/11/RobotlegsVid.jpg" alt="RobotlegsVimeo" width="450" height="265" /></a></p>
<p>The (better, but not awesome) code is over at:</p>
<p><a title="Robotliz on GitHub" href="http://github.com/darscan/SillyStockPriceExample/tree/robotlegs">http://github.com/darscan/SillyStockPriceExample/tree/robotlegs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/11/12/robotliz-2-a-six-minute-cleanup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Robotliz &#8211; Using Robotlegs like Swiz in 20 minutes</title>
		<link>http://shaun.boyblack.co.za/blog/2009/11/10/robotliz-using-robotlegs-like-swiz-in-20-minutes/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/11/10/robotliz-using-robotlegs-like-swiz-in-20-minutes/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 07:21:20 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[swiz]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=863</guid>
		<description><![CDATA[Warning: The style of architecture demonstrated in this video is not sexy. Nor is it in any way recommended. Also, I cheat by eating plenty copy-pasta, and I say &#8220;um&#8221; a LOT.
I&#8217;m still trying to figure about the best way to illustrate the simplicity and flexibility of the Robotlegs framework. In the meantime however, I [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Warning:</strong> <em>The style of architecture demonstrated in this video is not sexy. Nor is it in any way recommended. Also, I cheat by eating plenty copy-pasta, and I say &#8220;um&#8221; a LOT.</em></p>
<p>I&#8217;m still trying to figure about the best way to illustrate the simplicity and flexibility of the Robotlegs framework. In the meantime however, I thought I&#8217;d respond to <a title="Swiz in 20 minutes" href="http://www.firemoss.com/index.cfm/2009/10/21/Swiz-in-20-minutes-video--byebye-boilerplate">this cool Swiz video</a> by doing the same thing with <a title="Robotlegs AS3" href="http://www.robotlegs.org/">Robotlegs</a> &#8211; except ending up with a modular (as opposed to a static) app, and throwing in some git/<a title="GitHub - Social Coding" href="http://github.com/">GitHub</a> love as a bonus.</p>
<p>I don&#8217;t have a nice mic, so I strapped a phone to the side of my head and left myself a really long voicemail. Anyhoo:</p>
<p><a title="Robotlegs Swizzle on Vimeo" href="http://www.vimeo.com/7524637"><img class="alignnone size-full wp-image-868" title="RobotlegsVimeo" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/11/RobotlegsVid.jpg" alt="RobotlegsVimeo" width="450" height="265" /></a></p>
<p>You can grab the (terrible) source over at:</p>
<p><a title="SillyStockPriceExample demo app" href="http://github.com/darscan/SillyStockPriceExample">http://github.com/darscan/SillyStockPriceExample</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/11/10/robotliz-using-robotlegs-like-swiz-in-20-minutes/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>RobotLegs AS3 v0.9: ElasticChaos (Broken, Fixed, Tidied, Improved)</title>
		<link>http://shaun.boyblack.co.za/blog/2009/10/07/robotlegs-as3-v0-9-elasticchaos-broken-fixed-tidied-improved/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/10/07/robotlegs-as3-v0-9-elasticchaos-broken-fixed-tidied-improved/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 16:36:09 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=844</guid>
		<description><![CDATA[RobotLegs AS3 v0.9 (codename ElasticChaos) is up on GitHub:
RobotLegs is nearly at v1.0! Many awesome changes since v0.8, with the most community involvement to date:
http://github.com/robotlegs/robotlegs-framework/commits/v0.9.2
The &#8220;Official RobotLegs Framework Repository&#8221; has also been moved:
http://github.com/robotlegs/robotlegs-framework
A LOT of exciting stuff is going on, and I encourage you to check out the Wiki:
http://wiki.github.com/robotlegs/robotlegs-framework
An upgrade guide from v0.8 isn&#8217;t really [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a title="RobotLegs AS3" href="http://wiki.github.com/robotlegs/robotlegs-framework/faq">RobotLegs AS3</a> v0.9 (codename ElasticChaos) is up on <a title="RobotLegs on GitHub" href="http://wiki.github.com/robotlegs/robotlegs-framework/faq">GitHub</a>:</strong></p>
<p>RobotLegs is nearly at v1.0! Many awesome changes since v0.8, with the most community involvement to date:</p>
<p><a title="RobotLegs v0.9.2 Commits" href="http://github.com/robotlegs/robotlegs-framework/commits/v0.9.2">http://github.com/robotlegs/robotlegs-framework/commits/v0.9.2</a></p>
<p><strong>The &#8220;Official RobotLegs Framework Repository&#8221; has also been moved:</strong></p>
<p><a title="RobotLegs AS3" href="http://github.com/robotlegs/robotlegs-framework">http://github.com/robotlegs/robotlegs-framework</a></p>
<p><span id="more-844"></span>A LOT of exciting stuff is going on, and I encourage you to check out the Wiki:</p>
<p><a title="RobotLegs AS3" href="http://wiki.github.com/robotlegs/robotlegs-framework">http://wiki.github.com/robotlegs/robotlegs-framework</a></p>
<p>An upgrade guide from v0.8 isn&#8217;t really necessary is it? Here&#8217;s a list of <em>some</em> of the changes introduced in this last sprint:</p>
<ul>
<li>SwiftSuspenders DI solution fully integrated (bundled) into RobotLegs</li>
<li><strong>Constructor Injection</strong> (via SwiftSuspenders)</li>
<li>Bonus DI Adapters removed</li>
<li>CommandMap now features <strong>strong Event mapping</strong></li>
<li>As3commons logger removed</li>
<li>Utils inlined and removed: createDelegate() and DelayedFunctionQueue</li>
<li>dispatch() helper method renamed to dispatchEvent()</li>
</ul>
<p>And various miscellaneous optimisations, cleanups and API changes.</p>
<p><em>RobotLegs AS3 is a Dependency Injection Driven MVCS Framework for Flash, Flex and AIR.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/10/07/robotlegs-as3-v0-9-elasticchaos-broken-fixed-tidied-improved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RobotLegs &#8211; RazorSharpness Through Collaboration</title>
		<link>http://shaun.boyblack.co.za/blog/2009/10/03/robotlegs-razorsharpness-through-collaboration/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/10/03/robotlegs-razorsharpness-through-collaboration/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 14:17:15 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[yagni]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=824</guid>
		<description><![CDATA[
Help make RobotLegs the cleanest, smallest, most testable, and most kick-ass framework for Flash and Flex ever built &#8211; join the discussion group:
http://groups.google.com/group/robotlegs/topics
Or help fill up the Robotlegs Knowledgebase:
http://knowledge.robotlegs.org/
]]></description>
			<content:encoded><![CDATA[<p><a href="http://groups.google.com/group/robotlegs/browse_thread/thread/68569a7c85ce4c92"><img class="alignnone size-full wp-image-825" title="Yagninator" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/10/Yagninator.jpg" alt="Yagninator" width="512" height="384" /></a></p>
<p>Help make RobotLegs the cleanest, smallest, most testable, and most kick-ass framework for Flash and Flex ever built &#8211; join the discussion group:</p>
<p><a title="RobotLegs AS3 Discussion Group" href="http://groups.google.com/group/robotlegs/topics">http://groups.google.com/group/robotlegs/topics</a></p>
<p>Or help fill up the Robotlegs Knowledgebase:</p>
<p><a title="Robotlegs Knowledgebase" href="http://knowledge.robotlegs.org/">http://knowledge.robotlegs.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/10/03/robotlegs-razorsharpness-through-collaboration/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>RobotLegs AS3 v0.8: ByeByeFlex (FlexMediator removed)</title>
		<link>http://shaun.boyblack.co.za/blog/2009/09/10/robotlegs-as3-v0-8-byebyeflex-flexmediator-removed/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/09/10/robotlegs-as3-v0-8-byebyeflex-flexmediator-removed/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 08:18:05 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=807</guid>
		<description><![CDATA[RobotLegs AS3 v0.8 (codename ByeByeFlex) is up on GitHub:
The RobotLegs Library has received it&#8217;s first community contribution! Till Schneidereit fixed something that had been bugging me for a while: the existence of the FlexMediator. Initially I split this out to avoid compiling any Flex classes into pure AS3 projects. Till submitted a patch that allows [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a title="RobotLegs AS3" href="../robotlegs-as3/">RobotLegs AS3</a> v0.8 (codename ByeByeFlex) is up on <a title="RobotLegs on GitHub" href="http://wiki.github.com/darscan/robotlegs">GitHub</a>:</strong></p>
<p>The RobotLegs Library has received it&#8217;s first community contribution! <a href="http://www.tillschneidereit.de/">Till Schneidereit</a> fixed something that had been bugging me for a while: the existence of the FlexMediator. Initially I split this out to avoid compiling any Flex classes into pure AS3 projects. Till submitted a patch that allows the Mediator to detect the presence of Flex without this side-effect.</p>
<p>This is why I love <a title="Git" href="http://www.git-scm.org/">Git</a> (and <a title="GitHub - Social Coding" href="http://github.com/">GitHub</a>). Anyone can come along, fork the project, make changes to it, and send a Pull Request &#8211; without requiring any permission to do so. This significantly lowers the barrier-to-entry for once-off or &#8220;impulse&#8221; contributions.</p>
<p>Anyhoo, this change to the Library requires a find-n-replace on old application code:</p>
<p>FlexMediator -&gt; Mediator</p>
<p><em>RobotLegs AS3 is a Dependency Injection Driven MVCS Framework for Flash and Flex.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/09/10/robotlegs-as3-v0-8-byebyeflex-flexmediator-removed/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>What Is RobotLegs?</title>
		<link>http://shaun.boyblack.co.za/blog/2009/09/07/wtf-is-robotlegs/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/09/07/wtf-is-robotlegs/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 20:16:18 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[crybaby]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=789</guid>
		<description><![CDATA[What?

RobotLegs is an Architectural (or Structural) Action Script 3 Framework.
It provides a mechanism for wiring objects together.
It promotes a usage pattern for keeping your code loosely coupled and easy to test.
It has a narrow scope: wiring.


How?
RobotLegs relies on two things fairly unique to the Flash Platform: A powerful, built-in, standardised Event Model, and a Display [...]]]></description>
			<content:encoded><![CDATA[<h3>What?</h3>
<ul>
<li><a title="RobotLegs AS3" href="http://wiki.github.com/darscan/robotlegs">RobotLegs</a> is an Architectural (or Structural) Action Script 3 Framework.</li>
<li>It provides a mechanism for wiring objects together.</li>
<li>It promotes a usage pattern for keeping your code loosely coupled and easy to test.</li>
<li>It has a narrow scope: wiring.</li>
</ul>
<p><span id="more-789"></span></p>
<h3>How?</h3>
<p>RobotLegs relies on two things fairly unique to the Flash Platform: A powerful, built-in, standardised Event Model, and a Display List that is 100% integrated with that Event Model.</p>
<h3>Why?</h3>
<p>Using these two things (and any compliant Dependency Injection framework) RobotLegs is able to offer a minimally invasive solution for wrapping an application around a display object hierarchy &#8211; even if you don&#8217;t have access to modify the Classes within that hierarchy. Depending on your style, this may be hugely advantageous.</p>
<h3>But What About The Lolrus?</h3>
<p>Swiz, Parsley, Mate, PureMVC, HydraMVC and Cairngorm exist to solve the same basic problem, <span style="text-decoration: line-through;">but they suffer from blurry scopes and/or poor implementations</span>.(*) Here are some initial thoughts on that: <a title="Another Framework, Oh Noes!" href="http://shaun.boyblack.co.za/blog/2009/04/29/another-architectural-framework-but-why/">http://shaun.boyblack.co.za/blog/2009/04/29/another-architectural-framework-but-why/</a></p>
<p>Some may defend their violations, claiming pragmatism over purism &#8211; that is dangerous: the library that you use to wire your application together directly affects the flexibility and, more importantly, testability of your code. I am being pragmatic: if my Classes are hard to test (Singletons, Statics) then my application will be fragile and I won&#8217;t be free to refactor with speed and confidence. If code can&#8217;t be refactored easily it is dead. If I can&#8217;t refactor my code easily my progress as a developer slows down drastically.</p>
<h3>So, Is RobotLegs Perfect?</h3>
<p>Well no, but it does everything that it&#8217;s advertised to do, and tests are being set up to ensure that it stays that way. A framework must pick it&#8217;s battles carefully. There are one or two things that need some very careful consideration before RobotLegs can reach 1.0</p>
<p>Also, some peer review would be nice. I&#8217;m a mediocre programmer at best. I&#8217;m on that part of the curve where I&#8217;m knowledgeable enough to know exactly how bad I am.</p>
<h3>Where Is The Website? OMG, Where Are The Docs?</h3>
<p>I thought it would be best to determine whether or not I have completely missed the point before investing time and energy into support artifacts.</p>
<p><img class="alignnone size-full wp-image-803" title="lulzorsomgrofls2" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/09/lulzorsomgrofls2.jpg" alt="lulzorsomgrofls2" width="350" height="350" /></p>
<h3>Dude, You&#8217;re Wearing Sunglasses Indoors. WTF?</h3>
<p>So, have I missed the point? Do you really think that ANY of the architectural frameworks out there are good enough?</p>
<p>(*) Actually, it&#8217;s not really that, it&#8217;s more about how your application code looks when written on top of these frameworks.</p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/09/07/wtf-is-robotlegs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RobotLegs AS3 Framework Unit Tests</title>
		<link>http://shaun.boyblack.co.za/blog/2009/09/05/robotlegs-as3-framework-unit-tests/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/09/05/robotlegs-as3-framework-unit-tests/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 17:42:20 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=779</guid>
		<description><![CDATA[I&#8217;ve started putting together some unit tests for RobotLegs:
http://github.com/darscan/robotlegstests
Feel free to fork if testing is your idea of insane weekend fun!

]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started putting together some unit tests for RobotLegs:</p>
<p><a title="RobotLegs AS3 Unit Tests on GitHub" href="http://github.com/darscan/robotlegstests">http://github.com/darscan/robotlegstests</a></p>
<p>Feel free to fork if testing is your idea of insane weekend fun!</p>
<p><img class="alignnone size-full wp-image-785" title="RobotLegs" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/09/RLSketch3.png" alt="RobotLegs" width="220" height="220" /></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/09/05/robotlegs-as3-framework-unit-tests/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
