Hi!
I'm currently starting a new project and it seems like Pharo and Seaside are part of it. I follow the community and did some prototyping since the early beginnings of Seaside. But there's one thing I'm really wondering about! Why is WATask so rearly used and mentioned? When the Seaside Sushistore Example App came out, I thought well, this is it. Workflows can be done so easy with it. Is there a reason why most current great Seaside-based Frameworks and Apps avoid the usage of WATask? Is it to unreliable? Difficult to debug? Difficult to keep track of changes? Overkill? Am I perhaps wrong? Are there some packages out there where somebody used WATask excessively? Any thoughts very appriciated! Sebastian |
Am 14.09.2012 um 16:31 schrieb SebastianHC:
> Hi! > […] > Is there a reason why most current great Seaside-based Frameworks and Apps > avoid the usage of WATask? > Is it to unreliable? Difficult to debug? Difficult to keep track of changes? > Overkill? > > Am I perhaps wrong? Are there some packages out there where somebody used > WATask excessively? Well, It is used in the Seaside Tutorial at http://www.hpi.uni-potsdam.de/hirschfeld/seaside/tutorial especially in the "Task and Sessions" part. I used it to create an Installer for SqueakSource 3. Also, I know of some students having it used for most their Seaside applications. These are unavailable to public, tho. Best -Tobias PS: I like WATask. It is the killer feature of Seaside for me._______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by SebastianHC
Hi Sebastian,
I occasionally use WATask if I think it helps express my intent. For example from Pier Admin PRAdminSetupCreateKernelFromTemplate>>go and PRAdminSetupRecreateExportedKernel>>go I'll let others judge if I've succeeded in clearly expressing my intent. Nick On 14 September 2012 15:31, SebastianHC <[hidden email]> wrote: Hi! _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
:-D Okay I forgot about those two....
This means that there is not a single real power user project which implemented a complex statemachine like WATask framework? No workflow framework, no experience with announcement/event triggered multi threaded tasks.... Must have a reason... I'm just wondering since I feel like this is one of the most powerful features in Seaside.... But thanks anyways, I'll also try to figure out if I might need something like this. Sebastian |
In reply to this post by SebastianHC
On Fri, Sep 14, 2012 at 4:31 PM, SebastianHC
<[hidden email]> wrote: > Hi! > > I'm currently starting a new project and it seems like Pharo and Seaside are > part of it. > > I follow the community and did some prototyping since the early beginnings > of Seaside. > > But there's one thing I'm really wondering about! > Why is WATask so rearly used and mentioned? Maybe because you can get the same functionality with a method or block and #call: without having to create a class. Cheers Philippe _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
On Sep 16, 2012, at 9:53 AM, Philippe Marschall wrote: > On Fri, Sep 14, 2012 at 4:31 PM, SebastianHC > <[hidden email]> wrote: >> Hi! >> >> I'm currently starting a new project and it seems like Pharo and Seaside are >> part of it. >> >> I follow the community and did some prototyping since the early beginnings >> of Seaside. >> >> But there's one thing I'm really wondering about! >> Why is WATask so rearly used and mentioned? > > Maybe because you can get the same functionality with a method or > block and #call: without having to create a class. > I used a WATask to handle the login logic for www.practicemusic.com, but after login all of the other views are shown with a call:, like this; go | user component | self call: self userLoginView. (self userLoginView user) notNil ifTrue: [ component := self firstComponentToDisplayForUser: self userLoginView user. [ component notNil ] whileTrue: [ self call: component. component := component nextComponentToBeDisplayed ] ] I'll have to think about whether I could use WATask for some sophisticated workflow/notification processing in my system. Regards, Larry Kellogg > Cheers > Philippe > _______________________________________________ > seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
I feel like this is said a lot on this mailing list, but I'm a huge proponent of it. Announcements ftw.
WATask isn't really a state machine. It's more like a wizard or a subroutine (at least in my brain hehe). RS > Subject: Re: [Seaside] WATask, anyone? > From: mac.hive@me.com > Date: Sun, 16 Sep 2012 10:23:33 -0400 > To: seaside@lists.squeakfoundation.org > > > On Sep 16, 2012, at 9:53 AM, Philippe Marschall wrote: > > > On Fri, Sep 14, 2012 at 4:31 PM, SebastianHC > > <sebastian_heidbrink@yahoo.de> wrote: > >> Hi! > >> > >> I'm currently starting a new project and it seems like Pharo and Seaside are > >> part of it. > >> > >> I follow the community and did some prototyping since the early beginnings > >> of Seaside. > >> > >> But there's one thing I'm really wondering about! > >> Why is WATask so rearly used and mentioned? > > > > Maybe because you can get the same functionality with a method or > > block and #call: without having to create a class. > > > > I used a WATask to handle the login logic for www.practicemusic.com, but after login all of the other views are shown with a call:, like this; > > go > | user component | > self call: self userLoginView. > (self userLoginView user) notNil > ifTrue: [ > component := self firstComponentToDisplayForUser: self userLoginView user. > [ component notNil ] > whileTrue: [ > self call: component. > component := component nextComponentToBeDisplayed ] ] > > I'll have to think about whether I could use WATask for some sophisticated workflow/notification processing in my system. > > Regards, > > Larry Kellogg > > > > > Cheers > > Philippe > > _______________________________________________ > > seaside mailing list > > seaside@lists.squeakfoundation.org > > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > > _______________________________________________ > seaside mailing list > seaside@lists.squeakfoundation.org > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Philippe Marschall
On 9/16/12 3:53 PM, Philippe Marschall wrote:
> On Fri, Sep 14, 2012 at 4:31 PM, SebastianHC > <[hidden email]> wrote: > >> (...) >> Why is WATask so rearly used and mentioned? >> > Maybe because you can get the same functionality with a method or > block and #call: without having to create a class. > Yes, indeed. WATask provides a cool medium for coding in Smalltalk the flows of control and data among Seaside components that are sophisticated enough to "justify" a dedicated class. Otherwise, "a method or block and #call: without having to create a class" appears sufficient. Let me add that, to the best of my knowledge, the uniqueness of Seaside resides in the #call: mechanism, and not WATask. In my IWST'2010 paper ("Web Pontoon"), I typically explain how WATask may be replaced by a sort of workflow mechanism that leverages the power of #call: to allow postponing to run-time the definition of data and control flows among different type of components (including Seaside ones). This applies when such flows are subject to runtime modifications, to adapt to changing user conditions and needs in time and space, without system redesign and coding (adaptiveobjectmodel.com). Cheers, Reza _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by SebastianHC
There is a number of reasons why we don't use WATask that often:
- We mostly try to define the workflow functionality in the domain, so the UI code doesn't need to know about it That's why we use SBStoryState. - For complex workflows, you might need more than WATask provides. See Suixo or Gjallar. - Interaction with ajax can get interesting. - The simple case was already described in other posts. - Issue 553: #isolate: broken Stephan Eggermont _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Free forum by Nabble | Edit this page |