<?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 &#187; puremvc</title>
	<atom:link href="http://shaun.boyblack.co.za/blog/tag/puremvc/feed/" rel="self" type="application/rss+xml" />
	<link>http://shaun.boyblack.co.za/blog</link>
	<description>Flex, Ruby, Mongo - London, UK</description>
	<lastBuildDate>Sat, 04 Feb 2012 17:39:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>RobotLegs AS3: Introductory Screencast</title>
		<link>http://shaun.boyblack.co.za/blog/2009/06/17/robotlegs-as3-introductory-screencast/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/06/17/robotlegs-as3-introductory-screencast/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 11:50:22 +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[puremvc]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=676</guid>
		<description><![CDATA[RobotLegs AS3 is a Dependency Injection Driven MVCS Framework for Flash and Flex inspired by PureMVC. I&#8217;ve been meaning to do this for a while, but only got the chance to sit down and give it a bash this morning. It was pretty rushed, so I&#8217;ll probably redo these when I get a chance. NOTE: If you don&#8217;t know PureMVC you should watch these first: PureMVC.TV Update: The vids were pretty crap, so I removed them. Besides, they&#8217;re a bit &#8230; <a href="http://shaun.boyblack.co.za/blog/2009/06/17/robotlegs-as3-introductory-screencast/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em><a title="RobotLegs AS3 - DI Driven MVCS Framework for Flash and Flex" href="http://wiki.github.com/darscan/robotlegs">RobotLegs AS3</a> is a Dependency Injection Driven MVCS Framework for Flash and Flex inspired by <a title="PureMVC" href="http://puremvc.org/">PureMVC</a>.</em></p>
<p>I&#8217;ve been meaning to do this for a while, but only got the chance to sit down and give it a bash this morning. It was pretty rushed, so I&#8217;ll probably redo these when I get a chance.</p>
<p><strong>NOTE: If you don&#8217;t know PureMVC you should watch <a title="PureMVC" href="http://www.puremvc.tv/">these</a> first: <a title="PureMVC" href="http://www.puremvc.tv/">PureMVC.TV</a></strong></p>
<p>Update: The vids were pretty crap, so I removed them. Besides, they&#8217;re a bit dated now anyway (the framework&#8217;s API has tightened up quite a bit since this post). Have a look:</p>
<p><a title="Robotlegs Framework" href="http://wiki.github.com/robotlegs/robotlegs-framework">http://wiki.github.com/robotlegs/robotlegs-framework</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/06/17/robotlegs-as3-introductory-screencast/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>RobotLegs AS3: A DI Driven MVCS Framework for Flash &amp; Flex &#8211; Inspired by PureMVC</title>
		<link>http://shaun.boyblack.co.za/blog/2009/04/16/robotlegs-an-as3-mvcs-framework-for-flash-and-flex-applications-inspired-by-puremvc/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/04/16/robotlegs-an-as3-mvcs-framework-for-flash-and-flex-applications-inspired-by-puremvc/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 03:07:53 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[dependency injection]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[mvcs]]></category>
		<category><![CDATA[puremvc]]></category>
		<category><![CDATA[smartypants-ioc]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=314</guid>
		<description><![CDATA[Want a framework like PureMVC but without Singletons, Service Locators, or casting? Perhaps one with Dependency Injection and Automatic Mediator Registration? Well, you might enjoy RobotLegs AS3: yet another lightweight micro-architecture for Rich Internet Applications. It&#8217;s got the bits that I like about PureMVC (Mediators, Commands and Proxies) without any of the bits that I&#8217;m not so fond of (Service Locator, Singletons, casting casting casting!). I&#8217;ve put the source up on GitHub, so feel free to Fork it and make &#8230; <a href="http://shaun.boyblack.co.za/blog/2009/04/16/robotlegs-an-as3-mvcs-framework-for-flash-and-flex-applications-inspired-by-puremvc/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wiki.github.com/darscan/robotlegs"><img class="alignleft size-full wp-image" style="margin: 0px 10px 0px 0pt;" title="RobotLegs AS3" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/04/robotlegslogotiny.png" alt="RobotLegs AS3" width="50" height="50" /></a>Want a framework like PureMVC but without Singletons, Service Locators, or casting? Perhaps one with Dependency Injection and Automatic Mediator Registration?</p>
<p>Well, you might enjoy RobotLegs AS3: yet another lightweight micro-architecture for Rich Internet Applications.</p>
<p><span id="more-314"></span>It&#8217;s got the bits that I like about PureMVC (Mediators, Commands and Proxies) without any of the bits that I&#8217;m not so fond of (Service Locator, Singletons, casting casting casting!).</p>
<p>I&#8217;ve put the source up on GitHub, so feel free to Fork it and make it better:</p>
<p><a title="Robotlegs on GitHub" href="http://github.com/robotlegs/robotlegs-framework">http://github.com/robotlegs/robotlegs-framework</a></p>
<p>Discussion Group:</p>
<p><a title="RobotLegs AS3 Issues" href="http://github.com/darscan/robotlegs/issues"></a><a title="RobotLegs AS3 Discussion Group" href="http://groups.google.com/group/robotlegs">http://groups.google.com/group/robotlegs</a></p>
<p>Here&#8217;s a little demo:<br />
(<strong>Please note</strong>: the API and usage has cleaned up a lot since this demo was built)</p>
<p><a href="http://examples.robotlegs.org/helloflex/"><img class="alignnone size-full wp-image-327" title="RobotLegs Demo App: HelloFlex" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/04/helloflex460.png" alt="RobotLegs Demo App: HelloFlex" width="460" height="460" /></a></p>
<p>You can also view the demo <a title="RobotLegs Demo - HelloFlex" href="http://examples.robotlegs.org/helloflex/">here</a> (with view source).</p>
<p>The demo app is perhaps not so great, but it demonstrates many of the framework&#8217;s features. AND, there isn&#8217;t a single cast in there! No actor casting, no payload casting, not any casting, not even for fun!</p>
<p>I have much to say about this little framework, but it&#8217;s the wrong side of 5am and I&#8217;ve had a crazy long day. In the meantime, you can find some background info <a title="AS3 Dependency Injection and [Autowire]" href="http://shaun.boyblack.co.za/blog/2009/03/13/as3-dependency-injection-and-autowire/">here</a> and <a title="Flexible RIA Architecture" href="http://shaun.boyblack.co.za/blog/2009/02/08/flexible-ria-architecture-puremvc-and-mate/">here</a> if you&#8217;re interested.</p>
<p><strong>Update: <a title="Robotlegs AS3" href="http://www.robotlegs.org/">RobotLegs Lives!</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/04/16/robotlegs-an-as3-mvcs-framework-for-flash-and-flex-applications-inspired-by-puremvc/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>AS3 Dependency Injection and [Autowire]</title>
		<link>http://shaun.boyblack.co.za/blog/2009/03/13/as3-dependency-injection-and-autowire/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/03/13/as3-dependency-injection-and-autowire/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 13:33:24 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Banter]]></category>
		<category><![CDATA[Pijin]]></category>
		<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[mate]]></category>
		<category><![CDATA[puremvc]]></category>
		<category><![CDATA[smartypants-ioc]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[swiz]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=204</guid>
		<description><![CDATA[Warning: This is long and probably VERY boring.. unless you are an AS3 junkie, and you&#8217;re interested in so called &#8220;lightweight micro-architectural frameworks&#8221; for Flash and Flex. A couple of weeks ago I played around with Mate and Swiz. I already knew a little about Dependency Injection (in theory anyway), but playing with those two frameworks really drove the point home: applications are potentially MUCH easier to write, and much more flexible, when you take advantage of Dependency Injection. If &#8230; <a href="http://shaun.boyblack.co.za/blog/2009/03/13/as3-dependency-injection-and-autowire/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Warning</strong>: This is long and probably VERY boring.. unless you are an AS3 junkie, and you&#8217;re interested in so called &#8220;lightweight micro-architectural frameworks&#8221; for Flash and Flex.</p>
<p>A couple of weeks ago I played around with <a title="Mate Flex Framework" href="http://mate.asfusion.com/" target="_blank">Mate</a> and <a title="Swiz Flex Framework" href="http://code.google.com/p/swizframework/" target="_blank">Swiz</a>. I already knew a little about Dependency Injection (in theory anyway), but playing with those two frameworks really drove the point home: applications are potentially MUCH easier to write, and much more flexible, when you take advantage of Dependency Injection.<span id="more-204"></span></p>
<p>If you&#8217;ve used <a title="PureMVC Framework" href="http://puremvc.org/" target="_blank">PureMVC</a> you might be familiar with writing code like this:</p>
<p>var myProxy:MyProxy = facade.retrieveProxy(MyProxy.NAME) as MyProxy;<br />
myProxy.doSomethingAwesome();</p>
<p>This is sometimes referred to as the Model or Service Locator pattern. Firstly, it&#8217;s a little tedious to write. But more importantly, it puts the responsibility on your class to &#8220;fetch&#8221; the things it needs &#8211; not a good thing (especially from a testing point of view). From the &#8220;outside&#8221; you can&#8217;t see what your class is dependant on: you have to review the actual code in your class to see what it wants to pull in from the outside world.</p>
<p>It&#8217;s also a bit sneaky: to get something out, you have to know how it was put in &#8211; splitting and spreading knowledge across your codebase. Not pleasant.</p>
<p>Alternatively, you could use a Singleton to hang all your objects on. That would not be cool: <a title="Singletons are Pathological Liars" href="http://misko.hevery.com/2008/08/17/singletons-are-pathological-liars/" target="_blank">link</a>, <a title="Where Have All the Singletons Gone?" href="http://misko.hevery.com/2008/08/21/where-have-all-the-singletons-gone/" target="_blank">link</a>, <a title="Root Cause of Singletons" href="http://misko.hevery.com/2008/08/25/root-cause-of-singletons/" target="_blank">link</a>.</p>
<p><strong>Enter Dependency Injection</strong></p>
<p>Another solution is to declare certain properties on your class as dependencies to be &#8220;given&#8221; to you on (or just after) construction. A Dependency Injection framework will take care of managing these dependencies and providing you with what you need. Your class can then focus on doing it&#8217;s job instead of worrying about how to get the objects it needs.</p>
<p><strong>I Like The Mediator Pattern</strong></p>
<p>And I like the concepts in PureMVC: Specifically the Mediator, Command and Proxy patterns. I like clean view components with absolutely no framework or application code in them &#8211; as made possible by the Mediator pattern. I like Commands and I like binding them to system events. I like Proxies, who only communicate outwards, by dispatching events, and who&#8217;s APIs must be accessed directly by Commands and/or Mediator instances.</p>
<p>But I don&#8217;t like the use of Singletons or Multitons, the Service/Model locator pattern, the spreading of knowledge throughout the system by the Mediator and Proxy registration and retrieval mechanism (you have to know how something was put in to get it out again), and the custom Notification scheme and it&#8217;s associated methods: listNotificationInterests and handleNotification (with that nasty switch!).</p>
<p>So, I like PureMVC, I just think it could be improved for certain use cases. Now, obviously, improvement is subjective. Designing a framework is largely a balancing act: every decision has a pro and a con, and the framework architect must weigh up the pros and cons to steer the project in a chosen direction. That direction is determined by the architects vision of the most important use cases for the framework. I think that PureMVC has been brilliantly designed when stacked against it&#8217;s objectives. It&#8217;s been very carefully thought through, has an amazing author and community, sports great documentation, examples and utilities, and does it&#8217;s job well.</p>
<p><strong>YALMAFRIA (Yet Another Lightweight Micro-Architecture For Rich Internet Applications)</strong></p>
<p>Mate and Swiz can both do Dependency Injection. What I found interesting about the Dependency Injection in Mate is that it&#8217;s event based &#8211; this allows you to look at the event target to determine the instance that is currently being injected into. Using that (and a thing called an Object Builder in Mate) I was able to configure my application to automatically create Mediators for view components as they arrived on stage, and set references to the view components on the newly created Mediators.</p>
<p>It worked, but it seemed a little klunky, and still required a fair amount of code to map a Mediator Class to a view component Class (and any other dependencies). Regardless, it got me amped &#8211; using Dependency Injection and automatic Mediator registration I could remove most of the boring (and brittle) code from my projects.</p>
<p>I decided not to use Swiz or Mate in the end. Both offer nice solutions to some of the challenges of building RIA applications, but neither would make building my current application any quicker or easier.</p>
<p>Besides: I didn&#8217;t like the idea of using the display list as a system event channel, as in the case of Mate, or the concept of a central (Singleton) event dispatcher, as in the case of Swiz. And I didn&#8217;t want to put ANY application or framework code into my view components, as both seem to encourage.</p>
<p>Also, I wanted a framework that I could use for both Flex AND plain AS3 projects. I believe that this is possible with Swiz, but certainly not with Mate.</p>
<p>So, I looked for an AS3 Dependency Injection library to build a(nother) micro-architectural framework on top of..</p>
<p><strong>Back to Dependency Injection</strong></p>
<p>I tried <a title="Spring ActionScript" href="http://www.pranaframework.org/" target="_blank">Spring ActionScript</a> (previously known as Prana) first. Immediately, two things bugged me about it: the use of external xml files to configure dependencies, and the side-effect of that requirement:</p>
<p>When compiling a SWF the compiler ignores Class definitions that are not directly referenced by the application. A small problem, easily solved, but an extra step none the less to ensure all necessary Classes are compiled. Loading your dependencies externally is groovy, fo sho, but I really don&#8217;t need that right now.</p>
<p>I believe you&#8217;d enjoy Spring ActionScript if you&#8217;re from Java land (hello there, have you played with <a title="Clojure" href="http://clojure.org/" target="_blank">Clojure</a> yet? it got me all jazzed for a spell.. even though I didn&#8217;t build anything useful with it).</p>
<p>Anyhoo.. check this out if you are interested in Spring ActionScript and Autowiring: <a title="The “Spring ActionScript” Framework – Part 2: Autowiring" href="http://coenraets.org/blog/2009/03/the-spring-actionscript-framework-%E2%80%93-part-2-autowiring/" target="_blank">link</a></p>
<p>Or this, if you want to see how to do a similar thing with Swiz: <a title="A lovely little framework called Swiz" href="http://aralbalkan.com/1960" target="_blank">link</a></p>
<p><strong>Inspired by Guice</strong></p>
<p>Next I checked out <a title="SmartyPants-IOC Dependency Injection Framework" href="http://code.google.com/p/smartypants-ioc/" target="_blank">SmartyPants-IOC</a>. I liked the vibe and proceeded to build my little framework with it.</p>
<p><strong>RobotLegs AS3<br />
</strong></p>
<p>I decided to call my framework RobotLegs. It&#8217;s very simple really. It contains two factories (and some Interfaces):</p>
<p>A Mediator Factory &#8211; for automatically creating and wiring up Mediators as view components arrive on Stage.</p>
<p>And a Command Factory &#8211; for binding commands to events.</p>
<p>Everything else is handled by Dependency Injection thanks to SmartyPants. Conceptually, the framework is much the same as PureMVC, but uses DI in place of a registry, and built-in Flash Events instead of Notifications.</p>
<p>I was able to migrate my current project over to Robot Legs (from PureMVC) in about a day. Not bad considering there were dozens of Commands, over 20 Mediators and around 10 Proxies to convert. It was a bit of a mission creating all the custom Event Classes to replace my Notifications though.</p>
<p>But it was certainly worth it. My application code has tidied up nicely. Many of my Mediators, Proxies and Commands have halved in size, due to the removal of lookup code and notification body casting.</p>
<p><strong>RobotLegs?</strong></p>
<p>The cool thing about Mediators that automatically wrap themselves around view components as they appear is that it greatly simplifies dealing with composite, lazily instantiated view components. I don&#8217;t need to worry about how a view component comes into being, I just set up a rule that ensures when that view components arrives I have a Mediator to link it back into the application. This is great for items inside Tab Navigators, Accordians, View Stacks etc.</p>
<p>It does present a little problem however: context. When you manually create and register a Mediator, you have the opportunity to give it some context, such as setting a property on it. Mediators that get automatically created make this a bit tricky. We could, of course, set that property on the view component, to be picked up by the Mediator on registration, but that&#8217;s not cool &#8211; view components should be self-contained, stand-alone widgets.</p>
<p>My current solution is to allow Mediators to request properties from parent Mediators. This is made possible by the Mediator Factory, with it&#8217;s dictionary of currently registered Mediators and view components, and a method declared by the Mediator Interface called &#8220;provideProperty&#8221;.</p>
<p>I plan on releasing Robot Legs once it has settled down a bit &#8211; using it in my current project has pointed out a great many things that I had overlooked initially. It won&#8217;t be everyone&#8217;s cup of tea &#8211; nothing is <img src='http://shaun.boyblack.co.za/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>UPDATE: RobotLegs 0.1, with demo Flex app, has been released.</strong> More info here:</p>
<p><a title="RobotLegs - an MVCS framework for Flash and Flex" href="http://shaun.boyblack.co.za/blog/2009/04/16/robotlegs-an-as3-mvcs-framework-for-flash-and-flex-applications-inspired-by-puremvc/">http://shaun.boyblack.co.za/blog/2009/04/16/robotlegs-an-as3-mvcs-framework-for-flash-and-flex-applications-inspired-by-puremvc/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/03/13/as3-dependency-injection-and-autowire/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Pijin.net V3 Progress Update &#8211; 24 Feb 2009</title>
		<link>http://shaun.boyblack.co.za/blog/2009/02/24/pijinnet-v3-progress-update-24-feb-2009/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/02/24/pijinnet-v3-progress-update-24-feb-2009/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 15:56:35 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Pijin]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[mate]]></category>
		<category><![CDATA[milestones]]></category>
		<category><![CDATA[puremvc]]></category>
		<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[smartypants-ioc]]></category>
		<category><![CDATA[swiz]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=177</guid>
		<description><![CDATA[For the most part, Pijin development has been going pretty well. Maciek came down from London in December and we managed to come up with solutions for most of the tough conceptual challenges that were worrying us. By mid Jan I had nailed a decent chunk of core system functionality, including: Listing public Games Entering a Game Pulling Game Submission Pairs Rating Pairs Submission Scoring Viewing Submission Details Viewing Fullsize Submissions Logging In Uploading Submissions Customizing/Editing Submissions Writing Comments on &#8230; <a href="http://shaun.boyblack.co.za/blog/2009/02/24/pijinnet-v3-progress-update-24-feb-2009/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For the most part, <a title="Pijin.net" href="http://shaun.boyblack.co.za/blog/2008/09/11/pijinnet-v3-whats-taking-so-long-or-markers-on-the-road-to-pijin-v3/">Pijin</a> development has been going pretty well. <a title="Maciek Strychalski" href="http://maciek.boyblack.co.za/" target="_blank">Maciek</a> came down from London in December and we managed to come up with solutions for most of the tough conceptual challenges that were worrying us.<span id="more-177"></span></p>
<p>By mid Jan I had nailed a decent chunk of core system functionality, including:</p>
<ul>
<li>Listing public Games</li>
<li>Entering a Game</li>
<li>Pulling Game Submission Pairs</li>
<li>Rating Pairs</li>
<li>Submission Scoring</li>
<li>Viewing Submission Details</li>
<li>Viewing Fullsize Submissions</li>
<li>Logging In</li>
<li>Uploading Submissions</li>
<li>Customizing/Editing Submissions</li>
<li>Writing Comments on Submissions</li>
</ul>
<p><strong>And Then&#8230;</strong></p>
<p>About <a title="Flexible RIA Architecture: PureMVC and Mate" href="http://shaun.boyblack.co.za/blog/2009/02/08/flexible-ria-architecture-puremvc-and-mate/" target="_blank">two weeks ago I came to the painful realization</a> that the client-side architectural framework I was using was adding unnecessary complexity to the project and generally slowing me down. I started looking at other options but each had <a title="PureMVC Forum" href="http://forums.puremvc.org/index.php?topic=1000.0" target="_blank">drawbacks that I was not willing to put up with</a>.</p>
<p>In the end though, it was not really the <a title="Document Based" href="http://code.google.com/p/mate-examples/wiki/DocumentBased" target="_blank">Document-Based</a> nature of the project that was giving me hassles. I wanted a system that could automatically attach Mediators to view components as they appeared, without all the hassles of manual Mediator instantiation, naming, registration and removal.</p>
<p>So, against all &#8220;better&#8221; judgement, I borrowed ideas from <a title="PureMVC" href="http://puremvc.org/" target="_blank">PureMVC</a>, <a title="Mate Flex Framework" href="http://mate.asfusion.com/" target="_blank">Mate</a> and <a title="Swiz Flex Framework" href="http://code.google.com/p/swizframework/" target="_blank">Swiz</a>, and rolled-my-own. And it was fun!</p>
<p>Conceptually it&#8217;s very much like <a title="PureMVC Framework" href="http://puremvc.org/" target="_blank">PureMVC</a>, except:</p>
<ul>
<li>It uses Dependency Injection instead of the Service/Model Locator Pattern</li>
<li>It uses Flash Events instead of a custom Notification scheme</li>
<li>Mediators can be automatically created for view components</li>
</ul>
<p>There is actually very little to the framework: A Mediator Factory (for automatically creating Mediators when view components arrive on stage) and a Command Factory (for wiring Commands to Events) &#8211; <strong>everything else</strong> is taken care of by <a title="Dependency Injection" href="http://en.wikipedia.org/wiki/Dependency_injection" target="_blank">Dependency Injection</a>.</p>
<p>I&#8217;m using the <a title="SmartyPants IOC" href="http://code.google.com/p/smartypants-ioc/" target="_blank">SmartyPants IOC</a> library to handle injection. I sent a mail to the author of said library to explain my framework idea and the problem it is aiming to address. In his response he mentioned that my problem might be one commonly referred to as &#8220;<a title="How do I build two similar but slightly different trees of objects?" href="http://code.google.com/p/google-guice/wiki/FrequentlyAskedQuestions" target="_blank">robot legs</a>&#8220;. Rad! While not entirely accurate, I dig that phrase, and hereby name my framework &#8220;RobotLegs&#8221;!</p>
<p>I&#8217;m in the process of migrating Pijin over to RobotLegs, and so far everything is going very smoothly. I&#8217;ll post a more detailed description of RobotLegs once I&#8217;ve spent a decent amount of time &#8220;eating&#8221; it.</p>
<p><strong>UPDATE: RobotLegs 0.1, with demo Flex app, has been released.</strong> More info here:</p>
<p><a title="RobotLegs - an MVCS framework for Flash and Flex" href="http://shaun.boyblack.co.za/blog/2009/04/16/robotlegs-an-as3-mvcs-framework-for-flash-and-flex-applications-inspired-by-puremvc/">http://shaun.boyblack.co.za/blog/2009/04/16/robotlegs-an-as3-mvcs-framework-for-flash-and-flex-applications-inspired-by-puremvc/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/02/24/pijinnet-v3-progress-update-24-feb-2009/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Flexible RIA Architecture: PureMVC and Mate</title>
		<link>http://shaun.boyblack.co.za/blog/2009/02/08/flexible-ria-architecture-puremvc-and-mate/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/02/08/flexible-ria-architecture-puremvc-and-mate/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 14:01:49 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Resources]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[mate]]></category>
		<category><![CDATA[puremvc]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=170</guid>
		<description><![CDATA[I&#8217;ve been using PureMVC for my Flash/Flex applications for quite a while now, and have generally found it to work quite well. Besides the obviously annoying abundance of boiler-plate code, it does a decent job of separating concerns, and has helped me to build better applications. Lately, however, I&#8217;ve been building an application for which PureMVC has turned out to be a pretty poor fit. The term that some people have used to describe this kind of application is &#8220;Document-Based&#8221;. &#8230; <a href="http://shaun.boyblack.co.za/blog/2009/02/08/flexible-ria-architecture-puremvc-and-mate/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a title="PureMVC" href="http://puremvc.org" target="_blank">PureMVC</a> for my Flash/Flex applications for quite a while now, and have generally found it to work quite well. Besides the obviously annoying abundance of boiler-plate code, it does a decent job of <a title="Separation Of Concerns" href="http://en.wikipedia.org/wiki/Separation_of_concerns" target="_blank">separating concerns</a>, and has helped me to build better applications.</p>
<p>Lately, however, I&#8217;ve been building an application for which PureMVC has turned out to be a pretty poor fit. The term that some people have used to describe this kind of application is <a title="Document Based" href="http://code.google.com/p/mate-examples/wiki/DocumentBased" target="_blank">&#8220;Document-Based&#8221;</a>.</p>
<p><span id="more-170"></span></p>
<p>A benefit of <a title="Model View Controller" href="http://en.wikipedia.org/wiki/Model-view-controller" target="_blank">MVC</a> is the ability to easily create multiple Views of the same Model. Document-based is roughly the opposite of that: the ability to create identical Views of different data. Think OS X Finder (or Windows Explorer if you must!): multiple windows that look and function the same but show different parts of your filesystem.</p>
<p>I spend a lot of my time trying to learn as much as possible about programming. This means subscribing to a huge number of feeds and <a title="Shaun's Bookmarks" href="http://delicious.com/shaunphilipsmith" target="_blank">bookmarking</a> obsessively! Looking for solutions to my current problem I re-discovered <a title="Mate Flex Framework" href="http://mate.asfusion.com/" target="_blank">Mate</a>. I hadn&#8217;t looked too deeply into it before as I needed an ActionScript Framework that wasn&#8217;t bound to the Flex Framework (ruling out pretty much every framework except for PureMVC). This time however, I didn&#8217;t mind binding(!) myself to Flex.</p>
<p>Central to Mate is the concept of an <a title="Mate Event Map" href="http://mate.asfusion.com/page/documentation/tags/eventmap" target="_blank">Event Map</a>. UI components dispatch events that bubble up the display list and get caught by one or more Event Maps: loosely coupled goodness. Mate also employs <a title="Dependency Injection" href="http://en.wikipedia.org/wiki/Dependency_injection" target="_blank">Dependency Injection</a> instead of the <a title="Service Locator" href="http://blog.iconara.net/2008/12/13/architectural-atrocities-part-10-cairngorms-service-locator/" target="_blank">Service/Model Locator</a> pattern used by <a title="Cairngorm Flex Framework" href="http://labs.adobe.com/wiki/index.php/Cairngorm" target="_blank">Cairngorm</a> and <a title="PureMVC Framework" href="http://puremvc.org/" target="_blank">PureMVC</a>. And no <a title="Flaw: Brittle Global State &amp; Singletons" href="http://misko.hevery.com/code-reviewers-guide/flaw-brittle-global-state-singletons/" target="_blank">Singletons</a>! Suitably impressed.</p>
<p>I highly recommend you check out <a title="Mate Flex Framework" href="http://mate.asfusion.com/" target="_blank">Mate</a>, and if I were you I&#8217;d do it in this order:</p>
<ul>
<li><a title="Mate Presentation at 360 Flex" href="http://link.brightcove.com/services/player/bcpid1733261879?bclid=1729365228&amp;bctid=1738801386" target="_blank">Mate Presentation</a> by Laura Arguello: fairly long, and a bit slow, but quite fun and covers some really important concepts &#8211; not just for Mate, but application architecture in general</li>
<li><a title="Hello Mate" href="http://nwebb.co.uk/blog/?page_id=241" target="_blank">Hello Mate</a> by Neil Webb</li>
<li><a title="Mate Overview" href="http://mate.asfusion.com/page/documentation/overview" target="_blank">Mate Overview</a></li>
<li><a title="Mate Document Based Example" href="http://code.google.com/p/mate-examples/wiki/DocumentBasedExampleIntro" target="_blank">Mate Document-Based Example</a> by Theo Hultberg/Iconara: lots of great info</li>
</ul>
<p>Ok, time for me to calculate how painful it&#8217;s going to be to switch my application over to Mate.</p>
<p><strong>UPDATE</strong>: I posted my thoughts (as best as I could gather them) on the PureMVC forum here:</p>
<p><a title="PureMVC Forum Topic: Document-Based" href="http://forums.puremvc.org/index.php?topic=1000.0">http://forums.puremvc.org/index.php?topic=1000.0</a></p>
<p><strong>UPDATE</strong>: I decided not to switch to Mate for my current project. I wrote a little MVC framework (much like PureMVC), that uses Dependency Injection, and switched to that instead. More here:</p>
<p><a title="Pijin.net V3 progress" href="http://shaun.boyblack.co.za/blog/2009/02/24/pijinnet-v3-progress-update-24-feb-2009/">http://shaun.boyblack.co.za/blog/2009/02/24/pijinnet-v3-progress-update-24-feb-2009/</a><br />
<a title="AS3 DI and Autowire" href="http://shaun.boyblack.co.za/blog/2009/03/13/as3-dependency-injection-and-autowire/">http://shaun.boyblack.co.za/blog/2009/03/13/as3-dependency-injection-and-autowire/</a></p>
<p><strong>MAJOR UPDATE: RobotLegs 0.1, with demo Flex app, has been released.</strong> More info here:</p>
<p><a title="RobotLegs - an MVCS framework for Flash and Flex" href="http://shaun.boyblack.co.za/blog/2009/04/16/robotlegs-an-as3-mvcs-framework-for-flash-and-flex-applications-inspired-by-puremvc/">http://shaun.boyblack.co.za/blog/2009/04/16/robotlegs-an-as3-mvcs-framework-for-flash-and-flex-applications-inspired-by-puremvc/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/02/08/flexible-ria-architecture-puremvc-and-mate/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Pijin.net V3 Progress Update &#8211; 14 Sept 2008</title>
		<link>http://shaun.boyblack.co.za/blog/2008/09/14/pijinnet-v3-progress-update-14-september-2008/</link>
		<comments>http://shaun.boyblack.co.za/blog/2008/09/14/pijinnet-v3-progress-update-14-september-2008/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 14:53:04 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Pijin]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[milestones]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[puremvc]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=133</guid>
		<description><![CDATA[Thought it was about time to post some updates. July 2008: Started working on Pijin on a more full time basis &#8211; reduced Hello Computer work to 2 days a week. Serious evaluation of technologies, tools and approaches. August 2008: Decided on Tools and Technologies: Eclipse with plugins: PDT, Aptana, Subclipse, and Flex Builder (likely to switch to FDT later) PHP 5.2+ with Zend Framework (AMF integration with CodeIgniter was too messy), PureMVC MultiCore for AS3 framework, Flex 3 for &#8230; <a href="http://shaun.boyblack.co.za/blog/2008/09/14/pijinnet-v3-progress-update-14-september-2008/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Thought it was about time to post some updates.<br />
<span id="more-133"></span></p>
<p><strong>July 2008:</strong><br />
Started working on Pijin on a more full time basis &#8211; reduced Hello Computer work to 2 days a week.<br />
Serious evaluation of technologies, tools and approaches.</p>
<p><strong>August 2008:</strong><br />
Decided on Tools and Technologies:</p>
<ul>
<li>Eclipse with plugins: PDT, Aptana, Subclipse, and Flex Builder (likely to switch to FDT later)</li>
<li>PHP 5.2+ with Zend Framework (AMF integration with CodeIgniter was too messy),</li>
<li>PureMVC MultiCore for AS3 framework,</li>
<li>Flex 3 for front-end prototype,</li>
<li>AS3 for FP10 for deploy,</li>
<li>SabreSMF for Remoting (likely to switch to Zend_Amf later)</li>
</ul>
<p>Played with the Zend Framework<br />
Decided on packaging and naming conventions<br />
Basic server setup<br />
Tested WebOrb, but decided on SabreAMF instead (WebOrb was too bloated, though I like the admin tool)<br />
Started Pijin Core AS3 Library<br />
Started Pijin Flex3 PureMVC MultiCore Project<br />
Started Pijin PHP Library (Zend Framework naming conventions &#8211; allows use of Zend_Loader)<br />
Started Pijin PHP Remoting Services<br />
Wrote the Pijin AMFGateway bootstrap and CallbackServer for SabreAMF<br />
Wrote the Pijin AS3 RemoteService<br />
Started implementing Remoting security features for Services</p>
<p><strong>September 2008:</strong><br />
Started simple Flex prototype interface<br />
Integrated my CMS tool for quickly and easily setting up the Pijin V3 db Schema<br />
Wrote/adapted Pair Retrieval algorithm from Pijin.net V2<br />
Wrote/adapted Pair Rating algorithm from V2 &#8211; now with &#8220;weighting&#8221;<br />
Defined Item Schema<br />
Figured out how Styles will work<br />
Upgraded to SabreAMF 1.2</p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2008/09/14/pijinnet-v3-progress-update-14-september-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Too Many Options</title>
		<link>http://shaun.boyblack.co.za/blog/2008/07/25/too-many-options/</link>
		<comments>http://shaun.boyblack.co.za/blog/2008/07/25/too-many-options/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 18:03:22 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Banter]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[amf]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[puremvc]]></category>
		<category><![CDATA[remoting]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=77</guid>
		<description><![CDATA[So, I have a fairly large-scale flash application that I want to build. In fact, it&#8217;s the whole reason I&#8217;ve been learning all this web application development stuff. It&#8217;s the reason I stopped freelancing as BoyBlack over a year ago, and took on a fulltime job at Hello Computer &#8211; so that I could get paid to implement all the research I&#8217;ve been doing, in a realistic fashion, one manageable project at a time. It&#8217;s also the reason why I &#8230; <a href="http://shaun.boyblack.co.za/blog/2008/07/25/too-many-options/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, I have a fairly large-scale flash application that I want to build.</p>
<p>In fact, it&#8217;s the whole reason I&#8217;ve been learning all this web application development stuff. It&#8217;s the reason I stopped freelancing as <a title="BoyBlack" href="http://www.boyblack.co.za/" target="_blank">BoyBlack</a> over a year ago, and took on a fulltime job at <a title="Hello Computer" href="http://www.hellocomputer.net/" target="_blank">Hello Computer</a> &#8211; so that I could get paid to implement all the <a title="My Delicious Bookmarks" href="http://del.icio.us/shaunphilipsmith" target="_blank">research</a> I&#8217;ve been doing, in a realistic fashion, one manageable project at a time. It&#8217;s also the reason why I recently negotiated to reduce my working hours to two days a week &#8211; so that I can start building the next version of my application.</p>
<p>But now that I&#8217;m ready to sit down and build this thing I&#8217;m faced with a couple of tough decisions:</p>
<ul>
<li>IDE: FDT or Flex Builder?</li>
<li>PHP Framework: CodeIgniter or Zend Framework?</li>
<li>Remoting: AMFPHP or WebOrb? Or just go JSON</li>
</ul>
<p>At least I&#8217;m settled on using <a title="PureMVC - MVC Framework" href="http://puremvc.org/" target="_blank">PureMVC</a> as my Flash Framework (whether I decide to use Flex or not is another matter entirely!), and <a title="jQuery" href="http://jquery.com/" target="_blank">jQuery</a> as my JavaScript library.<span id="more-77"></span></p>
<p><strong>The IDE</strong></p>
<p>On Windows, <a title="FlashDevelop - An awesome open source ActionScript Editor for Windows" href="http://www.flashdevelop.org/" target="_blank">FlashDevelop</a> is by far my favourite ActionScript Editor. But I recently switched over to OS X and decided to explore <a title="Eclipse - An open development platform" href="http://www.eclipse.org/" target="_self">Eclipse</a>. I dig the whole integrated vibe: using <a title="Eclipse PDT" href="http://www.zend.com/en/community/pdt" target="_blank">PDT</a> for my <a title="PHP" href="http://www.php.net" target="_blank">PHP</a> development, the <a title="Aptana Studio" href="http://www.aptana.com/" target="_blank">Aptana</a> plugin for my JavaScript coding, and <a title="Subclipse SVN" href="http://subclipse.tigris.org/" target="_blank">Subclipse</a> for <a title="Subversion" href="http://subversion.tigris.org/" target="_blank">SVN</a> integration.</p>
<p>I tried out <a title="Powerflasher FDT" href="http://fdt.powerflasher.com/" target="_blank">FDT</a> &#8211; which has some really awesome features, but which I feel is slightly over-priced for a tool that doesn&#8217;t support <a title="Adobe Flex" href="http://www.adobe.com/products/flex/" target="_blank">Flex</a> development very well (no WYSIWYG editor, and lame MXML support). Don&#8217;t get me wrong, it&#8217;s a great piece of software for ActionScript development, but my gut tells me that for that kind of investment it&#8217;s probably wiser to go with the official Adobe IDE: <a title="Adobe Flex Builder" href="http://www.adobe.com/products/flex/features/flex_builder/" target="_blank">Flex Builder</a>.</p>
<p>At the same time, Flex Builder feels quite primitive and is mildly frustrating for someone used to the magical features, time saving templates, and bad-ass code hinting offered by FlashDevelop and FDT.</p>
<p>On that note, please vote for the <a title="Flex Template Issue" href="http://bugs.adobe.com/jira/browse/FB-11842" target="_blank">Template issue over at the Flex Bug And Issue Management System</a>.</p>
<p><strong>The PHP Framework</strong></p>
<p>I&#8217;m a bit of a fan of <a title="CodeIgniter - Open source PHP web application framework" href="http://codeigniter.com/" target="_blank">CodeIgniter</a>. Installation and configuration is quick and easy, the framework is light-weight, and the <a title="CodeIgniter Documentation" href="http://codeigniter.com/user_guide/" target="_blank">documentation</a> is great. I&#8217;ve built a couple of small websites with it, and combined it with <a title="ExtJS JavaScript Library" href="http://www.extjs.com/" target="_blank">ExtJS</a> to produce a simple CMS for Hello Computer to help speed up development time and provide clients with a user-friendly website management tool. I&#8217;ve had no hassles with it, except..</p>
<p>Integrating CodeIgniter with AMF Remoting seems to be a pain. The documents and tutorials I have found on the subject show it to be possible but rather messy. I have a gut feeling that integration with the <a title="Zend Framework" href="http://framework.zend.com/" target="_blank">Zend Framework</a> might be easier. Even if there isn&#8217;t an out-of-the-box solution right now, I believe that one is more likely to come from the Zend Framework community than the CodeIgniter community.</p>
<p><strong>Remoting</strong></p>
<p>For Flash websites that aren&#8217;t very data intensive, I like to send data to Flash using <a title="JavaScript Object Notation" href="http://www.json.org/" target="_blank">JSON</a>. PHP 5.2 supports JSON natively, so it&#8217;s really easy to spit data out in this format. Unfortunately, the system I&#8217;m currently building deals with lots of data &#8211; it&#8217;s quite &#8220;chatty&#8221;, so to speak, so the data transport layer needs to be fast and lightweight. Remoting allows for binary communication between a Flash client and a server, substantially reducing bandwidth for large datasets.</p>
<p>My two main options here are <a title="AMFPHP" href="http://www.amfphp.org/" target="_blank">AMFPHP</a> and <a title="WebORB for PHP" href="http://www.themidnightcoders.com/weborb/php/" target="_blank">WebOrb PHP</a>. Unfortunately, there hasn&#8217;t been much news on the AMFPHP front lately. WebORB development, however, seems to be quite active.</p>
<p>But, I&#8217;ve also noticed that <a title="Wade Arnold's Blog" href="http://wadearnold.com/blog/" target="_blank">Wade Arnold</a> (the new AMFPHP lead) has been tagging some of his posts with the <a title="Zend_Amf" href="http://wadearnold.com/blog/?cat=10" target="_blank">Zend_Amf</a> keyword. Perhaps there are plans for a Zend Framework AMF module?</p>
<p>&#8211;EDIT: this is indeed the case. See Wade&#8217;s comment below.</p>
<p><strong>Suggestions</strong></p>
<p>This post is mostly just a personal marker on my project&#8217;s timeline, but if you read through it, and have any experience with the options above, I&#8217;d love to hear your thoughts. Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2008/07/25/too-many-options/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Great PureMVC Tutorial</title>
		<link>http://shaun.boyblack.co.za/blog/2008/07/20/great-puremvc-tutorial/</link>
		<comments>http://shaun.boyblack.co.za/blog/2008/07/20/great-puremvc-tutorial/#comments</comments>
		<pubDate>Sun, 20 Jul 2008 20:51:23 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Resources]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flashdevelop]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[puremvc]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=68</guid>
		<description><![CDATA[I just finished going through this tutorial by Dave Keen &#8211; an Action Script developer from the UK. I think it makes for a great introduction to PureMVC. PureMVC Tutorial &#8211; Flex, PureMVC, Jabber and XIFF 3: Introduction: http://www.actionscriptdeveloper.co.uk/puremvc-tutorial-flex-puremvc-jabber-and-xiff-3-introduction/]]></description>
			<content:encoded><![CDATA[<p>I just finished going through <a title="PureMVC Tutorial - Flex, PureMVC, Jabber and XIFF 3: Introduction" href="http://www.actionscriptdeveloper.co.uk/puremvc-tutorial-flex-puremvc-jabber-and-xiff-3-introduction/" target="_blank">this tutorial</a> by <a title="Dave Keen" href="http://www.actionscriptdeveloper.co.uk/" target="_blank">Dave Keen</a> &#8211; an Action Script developer from the UK. I think it makes for a great introduction to <a title="PureMVC" href="http://puremvc.org/" target="_blank">PureMVC</a>.</p>
<p>PureMVC Tutorial &#8211; Flex, PureMVC, Jabber and XIFF 3: Introduction:<a title="PureMVC Tutorial - Flex, PureMVC, Jabber and XIFF 3: Introduction" href="http://www.actionscriptdeveloper.co.uk/puremvc-tutorial-flex-puremvc-jabber-and-xiff-3-introduction/" target="_blank"></p>
<p>http://www.actionscriptdeveloper.co.uk/puremvc-tutorial-flex-puremvc-jabber-and-xiff-3-introduction/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2008/07/20/great-puremvc-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PureMVC Framework for haXe</title>
		<link>http://shaun.boyblack.co.za/blog/2008/04/28/puremvc-framework-for-haxe/</link>
		<comments>http://shaun.boyblack.co.za/blog/2008/04/28/puremvc-framework-for-haxe/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 11:47:18 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Resources]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[haxe]]></category>
		<category><![CDATA[puremvc]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=63</guid>
		<description><![CDATA[Oh yeh! That&#8217;s what I&#8217;m talking about! Check it out: http://puremvc.org/content/view/68/1/ http://trac.puremvc.org/PureMVC_Haxe]]></description>
			<content:encoded><![CDATA[<p>Oh yeh! That&#8217;s what I&#8217;m talking about! Check it out:</p>
<p><a title="PureMVC haXe port" href="http://puremvc.org/content/view/68/1/" target="_blank">http://puremvc.org/content/view/68/1/</a></p>
<p><a title="PureMVC haXe port" href="http://trac.puremvc.org/PureMVC_Haxe" target="_blank">http://trac.puremvc.org/PureMVC_Haxe</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2008/04/28/puremvc-framework-for-haxe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Earthcote &#8211; More PureMVC fun</title>
		<link>http://shaun.boyblack.co.za/blog/2008/04/23/earthcote-more-puremvc-fun/</link>
		<comments>http://shaun.boyblack.co.za/blog/2008/04/23/earthcote-more-puremvc-fun/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 16:07:41 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[deeplinking]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flashdevelop]]></category>
		<category><![CDATA[hellocomputer]]></category>
		<category><![CDATA[puremvc]]></category>
		<category><![CDATA[swfaddress]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=61</guid>
		<description><![CDATA[Another PureMVC based AS3 site up. Check out the deep-linking. I think I might have gone a step too far! www.earthcote.co.za UPDATE: SWFAddress and FireFox 3 on Mac OS X Bug &#8211; I&#8217;m aware of the nasty white-flash bug with the site, but don&#8217;t have access to the source at the moment to fix it.]]></description>
			<content:encoded><![CDATA[<p>Another PureMVC based AS3 site up. Check out the deep-linking. I think I might have gone a step too far!</p>
<p><img class="alignnone size-full wp-image-62" title="earthcote450" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2008/04/earthcote450.jpg" alt="Earthcote" width="450" height="269" /></p>
<p><a title="Earthcote" href="http://www.earthcote.co.za/" target="_blank">www.earthcote.co.za</a></p>
<p><strong>UPDATE</strong>: SWFAddress and FireFox 3 on Mac OS X <strong>Bug</strong> &#8211; I&#8217;m aware of the nasty white-flash bug with the site, but don&#8217;t have access to the source at the moment to fix it.</p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2008/04/23/earthcote-more-puremvc-fun/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>

