Futurescale, Inc. PureMVC Home

The PureMVC Framework Code at the Speed of Thought


Over 10 years of community discussion and knowledge are maintained here as a read-only archive.

New discussions should be taken up in issues on the appropriate projects at https://github.com/PureMVC

Show Posts

* | |

  Show Posts
Pages: 1 ... 6 7 [8] 9 10
106  PureMVC Manifold / Demos and Utils / Re: StartupManager - A PureMVC AS3 Utility on: June 10, 2008, 02:56:01
Cliff has "bagged and tagged" the new version (1.3) of StartupManager, so it is now officially available.  The objective has been to address some of the concerns and desires expressed here in the forum.

For convenience, here is the standard link to the utility
http://trac.puremvc.org/Utility_AS3_StartupManager

On that page, see the Release Notes link.

There is a reset feature, to facilitate reuse of StartupMonitorProxy. There is a facility for automatic retries.  Timeout is still there but has a different interpretation in the context of retries.  The idea of dynamic resources has been addressed as an open-ended resource list.

The StartupAsOrdered demo has been enhanced to illustrate use of some of these features - version 1.5 of the demo.
 
I hope this new functionality is of use to some of you.
----Philip

107  PureMVC Manifold / Demos and Utils / Re: Startup as Ordered - A PureMVC AS3 / Flex Demo on: June 09, 2008, 03:17:53
Major point...
This release of StartupAsOrdered requires the latest version of the StartupManager utility, i.e. it will not work with version 1.2 of StartupManager.  That latest version of StartupManager has not yet been tagged for official release.

Minor point...
Just to avoid confusion. let me clarify that Cliff means 'Philip' not 'Peter'; for some reason this naming error with Philip is a common occurrence among people in general - sometimes Peter is used, sometimes Paul is used.

----Philip
108  PureMVC Manifold / Demos and Utils / Re: StartupManager - A PureMVC AS3 Utility on: June 09, 2008, 03:03:52
Your problem has arisen because you have taken the startup manager swc from trunk/bin.  This is a new version of StartupManager.  It has not been tagged for official release yet.  See the version.txt file for the steps required to migrate from version 1.2 to this later version.

There is quite a bit of new functionality in this version. and though trying to keep migration steps to a minimum, nevertheless, for a better base going forward, some steps are required.  One step is: remove LOAD_RESOURCES_REJECTED from notification interests and handling.

There is a new release of the StartupAsOrdered demo, updated for this new StartupManager.
----Philip
109  Announcements and General Discussion / General Discussion / Re: AppSkeleton StartupMonitorProxy on: May 30, 2008, 06:32:42
You might be interested in the StartupManager utility, which evolved from AppSkeleton.  Relevant links are
http://trac.puremvc.org/Utility_AS3_StartupManager

http://forums.puremvc.org/index.php?topic=259.msg985#msg985

----Philip
110  Announcements and General Discussion / Public Demos, Tools and Applications / Re: Tutorial: Getting Started with the PureMVC Startup Manager on: May 23, 2008, 02:50:10
Well done with the tutorial.  It's great that you've taken the time to hand on the benefits of your  own experience in this way.
----Philip
111  PureMVC Manifold / Demos and Utils / Re: Startup as Ordered - A PureMVC AS3 / Flex Demo on: May 23, 2008, 02:42:12
Well done with the tutorial.  It's great that you've taken the time to hand on the benefits of your  own experience in this way.
----Philip
112  PureMVC Manifold / Demos and Utils / Re: Startup as Ordered - A PureMVC AS3 / Flex Demo on: May 07, 2008, 03:40:08
By the way, if there are further postings that relate particularly to AsyncStub, it would be best to post them under the AsyncStub topic.
----Philip
113  PureMVC Manifold / Demos and Utils / Re: Startup as Ordered - A PureMVC AS3 / Flex Demo on: May 07, 2008, 03:36:08
Is there an easy way to mock/simulate loaded objects and their loading status?
I presume you mean by using AsyncStub.  I haven't focussed on this use, though I can see how one would think that would be an obvious use for it.  Whether it is a good fit for this purpose, in practice, is a good question.
----Philip   
114  Announcements and General Discussion / General Discussion / Re: Notification Stacking on: April 25, 2008, 03:46:43
Re game and notifications...
One thing to be aware of is that mediators can interact directly with proxies; you don't always need commands.
----Philip
115  PureMVC Manifold / Demos and Utils / Re: StartupManager - A PureMVC AS3 Utility on: April 22, 2008, 03:56:09
Steve, regarding your StartupAssets...
I have looked at your code, selectively.  This reply is with the hope of being helpful, but I acknowledge that I do not have practical experience with dynamic asset loading.  If I have misread your code or misunderstood the requirement, please forgive.

You depart quite a bit from the normal use of the startup manager, knowingly I'm sure, to try to achieve your goal, for example
  • AssetProxy invokes its own load(), and I suppose expects that the monitor will not
  • in AssetProxy, swf2Load is a String but is used also as type IStartupProxy.

In my opinion, the standard startup manager view of your requirement would be
  • use it once to do the first load via AssetManagerProxy, let that complete; I suppose you don't even need it for this single resource load
  • on completion of the first load, use it again, a new instance, to load the set of assets; these seem to be all known at that point; orchestrate it via the LoadAssetsCommand i.e. let it create the startup resources, set dependencies if any, and invoke loadResources(); let the utility invoke the load() operations in the normal way.

For the StartupManager to truly address dynamic loading, we would maybe need features like
  • tell it that resources will be added dynamically, so that it holds back on announcing completion
  • on dynamic addition of a resource, it re-invokes loadResources
  • tell it when all resources have been added.

----Philip
116  PureMVC Manifold / Demos and Utils / Re: StartupManager - A PureMVC AS3 Utility on: April 21, 2008, 03:13:48
Hi,

I just wanted to point out a tiny glitch I stumbled upon while going through the source code of the StartupManager utility...

Thanks for pointing this out.  It will be corrected at the next opportunity.  It may be that this error check is redundant, since the app resource proxy must have implemented IStartupProxy to even get accepted at instantiation of the StartupResourceProxy.  I know that this error check originated at a time when the utility was in development, pre-release, and the StartupResourceProxy did not exist in its current form.
----Philip
117  PureMVC Manifold / Demos and Utils / Re: StartupManager - A PureMVC AS3 Utility on: April 10, 2008, 08:50:36
.... NAME and SRNAME are already made unique by prepending the name
Yeah, I see that Steve - sorry for mis-reading it.  And well done for drafting a 'theory of operation'.  ----Philip
118  PureMVC Manifold / Demos and Utils / Re: StartupManager - A PureMVC AS3 Utility on: April 10, 2008, 06:20:58
Steve
1. I noticed this, though you may be aware of it yourself...
var rAsset :StartupResourceProxy = makeAndRegisterStartupResource( SRNAME , this.NAME as IStartupProxy);
...the 2nd arg is a String, so can't be an IStartupProxy

2. In constructor to AssetProxy, why not pass in an asset counter, for example the i subscript of MData,  and use it to make the NAME and SRNAME unique?  As you say, for the utility, the IStartupProxy NAME must be unique.

Trilec
Have noted your side note.

----Philip
119  PureMVC Manifold / Demos and Utils / Re: StartupManager - A PureMVC AS3 Utility on: April 10, 2008, 03:25:07
I am thinking that I should undertake some enhancements to the startup manager utitlity, arising from posts on this topic, as follows
  • a public method on StartupMonitorProxy, to reset it for reuse, controlled appropriately; i.e. we may want to use the utility more than once from our app, but not concurrently!
  • automatic retries, see Retry Policy below
  • but use sensible defaults, so that basic use of the utility remains as is.

These are refinements that 'round off' the existing set of features; I think it makes sense for me to do them.  If this conflicts with any work in progress by others, please let me know.

Retry Policy
I have done a little research into best practice.  My current thinking is...
  • policy, per startup resource, includes retry interval and max retries
  • automatic retry after load failure i.e. after the "load failed" notification from the app; the app knows what sort of failure occurred, it knows whether a retry makes sense or is futile, the "load failed" notification should include the facility for the app to state 'do not retry'
  • do not retry after timeout; so timeout is the limit on load time, inclusive of retry attempts; so timeout will result in finished_incomplete
  • this policy re timeout causes a complication; the full timeout cannot be used with each retry; the timeout must be decremented by the time elapsed for each try that fails 
  • if retries are exhausted or timeout has occurred, we have finished_incomplete and control returns to the app; let the app still have the option to invoke retry on the utility, to try again to load the failed resources; in this case we start again with max retries and full timeout available per failed resource.

Cliff, how does this seem to you?

Comments welcome of course.
----Philip
120  Announcements and General Discussion / General Discussion / Re: Handling CRUD operations with RemoteObjects on large amount of data on: April 07, 2008, 08:01:06
Say proxy vars as follows
 datarecs :ListCollectionView = new ArrayCollection();
 idMap :Object = new Object()

For each item going into the list...
datarecs.setItemAt( rec, ix );
idMap[rec.getId()] = rec;

Get an item, given the id...
return idMap[ givenId ];

Replace an item in the list...
ix = find the index of the item in the list by searching the list
datarecs.setItemAt( rec, ix );
idMap[rec.getId()] = rec;

Remove an item from the list, given the id...
ix = find the index of the item in the list by searching the list for matching id
datarecs.removeItemAt( ix );
delete idMap[ givenId ];

Hope this helps
----Philip
Pages: 1 ... 6 7 [8] 9 10