WATask, anyone?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

WATask, anyone?

SebastianHC
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
Reply | Threaded
Open this post in threaded view
|

Re: WATask, anyone?

Tobias Pape
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
Reply | Threaded
Open this post in threaded view
|

Re: WATask, anyone?

Nick
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
| kernelNamedispatcherNamePair |

kernelNamedispatcherNamePair := self selectAndCreateFromTemplateDistribution.
self queryAdminUICreationFor: kernelNamedispatcherNamePair kernelName at: kernelNamedispatcherNamePair dispatcherName

and

PRAdminSetupRecreateExportedKernel>>go
| kernelCreator |

[ kernelCreator isNil ] whileTrue: [
kernelCreator := self selectExportedKernelComponent.
(self ifPresentConfirmRemovalOfApplicationAt: kernelCreator dispatcherPathName) ifFalse: [ kernelCreator := nil ] ].

self createExportedKernel: kernelCreator.
self queryAdminUICreationFor: kernelCreator kernelName at: kernelCreator dispatcherPathName

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!

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



--
View this message in context: http://forum.world.st/WATask-anyone-tp4647462.html
Sent from the Seaside General mailing list archive at Nabble.com.
_______________________________________________
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
Reply | Threaded
Open this post in threaded view
|

Re: WATask, anyone?

SebastianHC
:-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
Reply | Threaded
Open this post in threaded view
|

Re: WATask, anyone?

Philippe Marschall
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
Reply | Threaded
Open this post in threaded view
|

Re: WATask, anyone?

Larry Kellogg

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
Reply | Threaded
Open this post in threaded view
|

RE: WATask, anyone?

Robert Sirois
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
Reply | Threaded
Open this post in threaded view
|

Re: WATask, anyone?

Reza Razavi
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
Reply | Threaded
Open this post in threaded view
|

Re: WATask, anyone?

Stephan Eggermont-3
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