Surely you mean Sydney :) 2009/11/11 Randinn <rand...@gmail.com>
> > Its sounds like your presentation went well, congrats. now we need to > talk you into a Melbourne trip. :) > > On Nov 11, 5:15 am, David Pollak <feeder.of.the.be...@gmail.com> > wrote: > > On Tue, Nov 10, 2009 at 9:52 AM, Peter Robinett <pe...@bubblefoundry.com > >wrote: > > > > > > > > > > > > > Hi David, > > > > > Thanks for presenting your latest work on Wizard last night at the Bay > > > Area Scala Enthusiasts meetup. I enjoyed hearing about Wizard and have > > > a few comments that I wanted to share with you and the rest of the > > > Lift community. I know Wizard is very new and I'm only going by what I > > > learned last night, so please bear with me if I misunderstood > > > anything! > > > > > As I understand it a Wizard instance is composed of screens > > > ('questions'? I forget the exact terminology), each of which can have > > > multiple inputs, each input having a prompt ('Name', 'Your mother or > > > father's name', etc) and multiple validation rules. User input is > > > saved each time the user hits the Submit (or Next, in your example) > > > button. User state is stored from screen to screen and can be rolled > > > backwards but not forward. This is analogous to checking out an older > > > revision in a version control system, with each submitted screen being > > > a revision, but then loosing all revisions since the checkout > > > (rebasing the HEAD I believe it's called in Git). > > > > > What I expected, and what I think many other people would expect, is > > > that going back and forward among screens does not change the Wizard > > > state but simply changes what portion of the questions and responses > > > the user sees. In this case each screen is a simple, reduced view of > > > the current state, rather than a state in itself. > > > > > To use an analogy, think of a Wizard instance as an (annoying) > > > adventure game and each screen as a dungeon room. Let's say I fight my > > > way through several rooms full of grues, only to reach a locked door. > > > I'm told that the switch to unlock the door is 2 rooms back. I go back > > > (ie the previous screen method is fired twice) and I throw the switch. > > > Unfortunately, Wizard has also rolled back the dungeon state two > > > revisions and the intermediate room and room with the door now have > > > fearsome grues in them again! (In fact, I think Wizard could be used > > > quite easily for adventure games like that. Cool! I'm reminded of my > > > time making games in HyperCard. =) > > > > > To give another example, let's say I have a Wizard representing an e- > > > commerce site and have the following screens: shopping cart -> name > > > and shipping address -> credit card and billing address -> > > > confirmation. If I get to the confirmation screen and see that I added > > > 2 Widgets and only want to buy 1, I want to be able to go back to the > > > shopping cart screen to make my change without losing the addresses > > > and payment details I entered in the intermediate screens. > > > > > Am I describing Wizard correctly, and if so, why did you chose the > > > first method of operation over the second? Can the second mode be > > > added? > > > > Not easily. Snapshotting at a point in time and rolling back to that > point > > is easy with immutability. Merging different branches of a given > snapshot > > is non-trivial and is not likely a feature that will make it into Wizard > in > > the near term. Put another way, 3 way merges on text is non-trivial. 3 > way > > merges on non-text is not a solved problem that I know of. Further, once > > you merge text in Git, you have the compiler test to make sure that code > > makes sense, but doing logic testing would be difficult during a merge > > phase. > > > > > > > > > Thanks for all the great work and I'm really looking forward to using > > > Wizard! > > > > > Peter Robinett > > > > -- > > Lift, the simply functional web frameworkhttp://liftweb.net > > Beginning Scalahttp://www.apress.com/book/view/1430219890 > > Follow me:http://twitter.com/dpp > > Surf the harmonics > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---