topleft topright

Welcome, Guest. Please login or register.
May 21, 2013, 10:06:35 PM
Home Help Search Login Register
News: ATTENTION: Spambots must die! Humans must visit http://contact.futurescale.com to request forum access.

  Show Posts
Pages: [1] 2 3 ... 184
1  Announcements and General Discussion / Architecture / Re: Need some State Machine advice on: May 10, 2013, 07:04:41 AM
With the State Machine utility, state is a running thing that is announced. Actors don't generally 'check' the state, but instead respond to state changes as they are sent. If you are persisting the application state represented by the state machine in a proxy, then you should rethink your design. Things should never be confused about the application state, but instead always be organized to represent the current state.

To your point with canceling the tabs, you could likely capture the event, cancel it, and dispatch a different event that your mediator hears and sends off the notification to the state machine. That would trigger the guard logic that may cancel the action. Or it might let the action go through and a CHANGED note goes out that the mediator hears and it changes the tab.

-=Cliff>

2  Announcements and General Discussion / Architecture / Re: Managing Class Inheritance Across Platform-Dependent Libraries on: May 06, 2013, 07:41:06 AM
A project I've been working on for a couple of years now has:

- Web creation tool
- Web viewer
- Desktop Viewer
- iPad Viewer
- Android tablet viewer

The libs break down like this:

- LibInhouse - everything that is sharable between all the above projects
- LibAir - everything that is sharable only between desktop and mobile projects
- LibMobile - everything that is sharable only between the mobile projects

PureMVC is everywhere in these libs and application projects.

-=Cliff>
3  PureMVC Manifold / MultiCore Version / Re: Multi thread via AS3 Workers? on: March 21, 2013, 02:08:45 PM
Also, since workers are not supported on mobile AIR platforms[1], you wouldn't want the framework tied to them. Otherwise, you'd write an app for web and desktop but then not be able to use it on mobile. While UI's usually change between these platforms, business and domain logic is generally reusable if best practices are followed.

-=Cliff>

1) Worker AS3 Doc
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/Worker.html
Quote
"Note: The use of workers for concurrency is only supported in Flash Player and in AIR on desktop platforms. Concurrency is not supported on mobile AIR platforms. You can use the static isSupported property to check whether concurrency is supported before attempting to use it."
4  PureMVC Manifold / MultiCore Version / Re: Multi thread via AS3 Workers? on: March 21, 2013, 01:38:06 PM
Why should a separate version of the framework be required? Seems as if you could create separate multicore modules, and run them as workers. You may have to mediate each worker in the shell. I confess I haven't tried it, but I don't imagine the framework itself has to change.

Feedback?

-=Cliff>
5  PureMVC Manifold / Native JS Branch / Re: Top JavaScript MVC frameworks on: March 20, 2013, 07:02:14 AM
That's probably because the port is relatively new, and there aren't many demos. We need more demos!

6  PureMVC Manifold / Bug Report / Re: Facade.getInstance should be a classmethod instead of a staticmethod on: March 13, 2013, 12:00:23 PM
* Is this an API change, i.e., client code will have to change?
* Is there a significant behavioral change, i.e., something will not work as expected? - I don't think people should be relying on it allowing multiple Facades, since that's what MultiCore is for, but anything else?

Don't want to accept a pull request automatically if it might break client code, that's all.

-=Cliff>
7  PureMVC Manifold / Bug Report / Re: missing super() call in puremvc.patterns.command.MacroCommand.__init__ on: March 13, 2013, 11:52:55 AM
Can you make a pull request for this on the PureMVC repo?

This should clearly be folded in.
Cheers,
-=Cliff>
8  PureMVC Manifold / Demos and Utils / Re: Multiplatform Communications - A PureMVC Haxe / JavaScript / Flash Demo on: March 06, 2013, 08:18:00 AM
Seems to work fine for me. I entered 50 and all the dark grey boxes jumped over to the right a bit when I clicked send. Perhaps try it on another computer? Maybe Flash isn't installed on the one you're using.
9  Announcements and General Discussion / General Discussion / Re: Is the Eclipse Pureclipse plug-in still available? on: March 06, 2013, 08:15:38 AM
Try here: https://github.com/stolyarchukav/pureclipse
10  Announcements and General Discussion / General Discussion / Re: Is there a Bug in pipeworks demo? on: February 27, 2013, 01:51:40 PM
Yes, it appears you are correct. Good catch!

In the case of the demo, it doesn't really make much of a difference, since we only need to get the feed window exported from those modules, but if there were more shell to module communications that happened over time, we might find that those suddenly fail because of this. (That's probably why this has never shown up as a problem).

-=Cliff>
11  Announcements and General Discussion / Architecture / Re: Multicore -> Pipes -> 'Submodules' on: February 14, 2013, 08:12:52 AM
Quote
Imagine we'd like to extend the the PrattlerModule (from the PipeWorks demo) with more features.
For instance there is a navigation tree with some items that offers some more complex functions (in prattler context).
To be encapsulated we would like to build an own core for each function.
So here a function is something like a 'submodule' but of course each submodule should be independent and self-contained.

How we could solve this by using pipes?


I'm not fully sure I understand the question. Yes, you could extend a module and extend the classes used in that module. That's not pipes, that's just normal OOP. I don't fully understand each 'function' being a core, though. A core usually provides a number of related functions. You could separate every function to a core of its own, but that would mean an untenable amount of coding overhead for each function. You have to ask yourself why you're doing the separation and what the real, tangible benefit of that separation is first.

Quote
Would it basically a good idea that some cores are connected directly with each other without involving the shell?

You certainly can plumb cores together without them having to be plumbed to the shell. Have a look at this slide in the MultiCore Overview Presentation:
http://puremvc.tv/#P002/T235

-=Cliff>


12  Announcements and General Discussion / Architecture / Re: Multicore questions on: February 08, 2013, 08:29:36 AM
Plumbing is what we call all the pipes and pipe fittings that connect sinks and showers and toilets the like so that water runs to them. In this case think of message flow as water flow.

But the pipes concept for modular software really came about with Unix, where you can 'pipe' the output of one command (like a directory listing) through another command (like a sort) and build a pipeline of commands that process the data that flows through it.

Cheers,
-=Cliff>
13  Announcements and General Discussion / Architecture / Re: Multicore questions on: February 07, 2013, 08:42:24 AM
Quote
1) More than one shell core inside a multicore project?
There is a skeleton with some navigation buttons and common functions.
In multicore context this would be the 'shell', right?
Inside this 'shell' the user could open different tabs wich will be place inside a view stack.
A tab is like a module and provides different views with different functionalities and it's own tab related navigation. Should be each tab have it's own shell core? Or should each tab 'submodule' including the tab skeleton be represented by a core?
It all depends. Will each tab be massive, really different, and possibly only loaded sometimes? If so, probably make it a core of its own. But that's not the only reason to make something a separate core. Even if every section will be loaded each time, sometimes it's just easier to have each section be a core of its own because it simplifies the overall app. Inside a core, you usually only have to deal with the stuff in that core. This makes it easy for you to split the functionality across teams. You can have different teams working on different cores. Also, to answer the other question here, only one shell exists - the main app.

Quote
2) How granular-> how many cores in a multicore project?
I've read one benefit using multicore is to be able to create unit tests in a proper way.
But what should we define as a unit, my understanding is that one core represents a unit.
Within an application there could be tons of functions, modules, submodules... units after all.
As a result of this we would have tons of cores inside a project. Is there a limitation for the number of cores inside a project?
No, for unit testing, you don't have to have the core be the 'unit'. The benefit of MultiCore for unit testing is that with each test in the test suite, you can create a NEW facade for testing. With Standard, each test uses the one and only Facade, so you can't get back to a clean slate for the next test. You can test whatever you want. Look at the MultiCore framework unit tests to understand this better.

Quote
3) Shared proxies
In my application each tab has references to same proxies.
E.g. one tab provides a userlist and another tab displays detailed informations of one user. So both tabs have a reference to the 'UserCollectionProxy' and both could manipulate the proxy. How this works with the multicore version? Should this be done by using pipes?
I know the best way is to have 100% encapsulated modules, but I think this doesn't work in real life!?
Yes, this absolutely works in real life or there'd be no point in doing a modular approach at all!

The only thing that needs to be shared is data object classes and 'protocol' classes - i.e. custom message types.

All you have to change is your thinking. Don't have multiple cores 'share' a proxy, make a separate core (or cores) for talking to the service(s) and send that core a message (if you're using pipes to comm between cores) or invoke a method (if you're using interfaces and core references for comm). So your service core is the only one that has the proxy. Send it a message that says, give me the user list, and the core receives the message, executes a command to figure out what you're trying to do, and manipulates the proxy to make a call. It should use the async token pattern to remember what it was doing so that when the service responds, it can trigger a command that sends a message back (if using pipes) or calls a method on the other core (if using interfaces) to get the data back to the caller.

Quote
4) 'Dynamic' cores
To make sure that each view/mediator inside a tab handles the right notifications I make an extensive usage of notifications type parameter by passing an unique id with it. Sometimes this is a bit confusing.
Is it right that by using the multicore version I'll don't have to pay attention to this cause within multicore each core have an unique id?
Each core does have a unique ID. You still have to target the right core, and you'd be sending pipe messages instead of notes, (or making method calls if using interfaces). But your mediators wouldn't need to check for note type all the time.

Quote
5) EmployeeAdmin multicore demo?
For me it would be helpful if the EmployeeAdmin demo would be available as multicore demo.
Are there any examples like this out there?
Well, there is the PipeWorks demo, and the Modularity Demo for Flex. They should give you some idea.
https://github.com/PureMVC/puremvc-as3-demo-flex-pipeworks/wiki
https://github.com/PureMVC/puremvc-as3-demo-flex-modularity/wiki

Also you can see a real world example at http://seaofarrows.com + http://seaofarrows.com/srcview

Hope this helps!
-=Cliff>
14  PureMVC Manifold / Standard Version / Re: Where to find history of code changes in PureMVC versions? on: January 28, 2013, 08:14:40 AM
All of the SVN history for the PureMVC projects was transferred over to GitHub.

For the PureMVC AS3 Standard Version, look here:
https://github.com/PureMVC/puremvc-as3-standard-framework/commits/master

For MultiCore:
https://github.com/PureMVC/puremvc-as3-multicore-framework/commits/master

I don't know if the SWC format has changed in the latest Flex version or not, but you might want to just try adding the PureMVC source tree to your project and see if that changes anything. Let me know what you find.

-=Cliff>
15  PureMVC Manifold / Bug Report / Re: Error when generating docs on: January 21, 2013, 08:17:48 AM
I must admit I never tried to generate docs for the ReverseText demo, only for the framework itself, since usually, docs for a demo aren't all that useful. I'm going to be pretty busy this week, but will try to get it sorted soon. For now, you might try removing docs from the demo until you find what character is throwing it, starting at the top of TextProxy.

-=Cliff>

Pages: [1] 2 3 ... 184


Login with username, password and session length

Powered by SMF 1.1.11 | SMF © 2006-2007, Simple Machines LLC
Copyright © 2006-2008 Futurescale, Inc.