I got really inspired reading the extreme validation section of "A Mentoring Course on Smalltalk", Andres Valloud's OOP bible (see seandenigris.com/blog/?p=573), and enhanced a bit my port of ValidationRevisited. I made a short screencast of a little UI monitoring the health of a domain object in real-time. https://vimeo.com/67244280 If you want to play with the code (works on Pharo 2.0), doIt: Gofer it smalltalkhubUser: 'SeanDeNigris' project: 'aMentoringCourseOnSmalltalk'; package: 'ValidationRevisited'; load. See ValidationDashboard class>>#openExample ----- Cheers, Sean -- View this message in context: http://forum.world.st/ANN-ValidationRevisited-alpha-tp4690680.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
;) show us how you specify that? Stef On May 29, 2013, at 11:12 PM, "Sean P. DeNigris" <sean@clipperadams.com> wrote:
I got really inspired reading the extreme validation section of "A Mentoring Course on Smalltalk", Andres Valloud's OOP bible (see seandenigris.com/blog/?p=573), and enhanced a bit my port of ValidationRevisited.
I made a short screencast of a little UI monitoring the health of a domain object in real-time.
If you want to play with the code (works on Pharo 2.0), doIt: Gofer it smalltalkhubUser: 'SeanDeNigris' project: 'aMentoringCourseOnSmalltalk'; package: 'ValidationRevisited'; load. See ValidationDashboard class>>#openExample
----- Cheers, Sean -- View this message in context: http://forum.world.st/ANN-ValidationRevisited-alpha-tp4690680.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
stephane ducasse wrote
show us how you specify that?
It's a simple Spec UI, receiving announcements from the domain object. Whenever the model changes, the UI receives: modelChanged: anAnnouncement failureList items: model validate failures. #validate is the main entry point for the framework. You can call this on any domain object and the validation rules will be run. Under the hood are specialized SUnit classes. Here (on Nabble) is a screenshot of the validator class, a specialized TestCase which holds the rules for the object in the screencast: <http://forum.world.st/file/n4690694/Screen_Shot_2013-05-29_at_5.37.12_PM.png> The really cool thing which is not shown in the video is that the failures are real objects which hold the domain object, the property that failed (called an 'aspect'), and the description shown in the UI. So you could do a lot more than show the description... ----- Cheers, Sean -- View this message in context: http://forum.world.st/ANN-ValidationRevisited-alpha-tp4690680p4690694.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
I started to read the chapter to understand. Stef
stephane ducasse wrote
show us how you specify that?
It's a simple Spec UI, receiving announcements from the domain object. Whenever the model changes, the UI receives: modelChanged: anAnnouncement
failureList items: model validate failures.
#validate is the main entry point for the framework. You can call this on any domain object and the validation rules will be run. Under the hood are specialized SUnit classes. Here (on Nabble) is a screenshot of the validator class, a specialized TestCase which holds the rules for the object in the screencast: <http://forum.world.st/file/n4690694/Screen_Shot_2013-05-29_at_5.37.12_PM.png>
The really cool thing which is not shown in the video is that the failures are real objects which hold the domain object, the property that failed (called an 'aspect'), and the description shown in the UI. So you could do a lot more than show the description...
----- Cheers, Sean -- View this message in context: http://forum.world.st/ANN-ValidationRevisited-alpha-tp4690680p4690694.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
I love the music you used in your screencast :D Sounds a bit like a telephone waiting line On 30.05.2013, at 08:52, stephane ducasse <stephane.ducasse@free.fr> wrote:
I started to read the chapter to understand.
Stef
stephane ducasse wrote
show us how you specify that?
It's a simple Spec UI, receiving announcements from the domain object. Whenever the model changes, the UI receives: modelChanged: anAnnouncement
failureList items: model validate failures.
#validate is the main entry point for the framework. You can call this on any domain object and the validation rules will be run. Under the hood are specialized SUnit classes. Here (on Nabble) is a screenshot of the validator class, a specialized TestCase which holds the rules for the object in the screencast: <http://forum.world.st/file/n4690694/Screen_Shot_2013-05-29_at_5.37.12_PM.png>
The really cool thing which is not shown in the video is that the failures are real objects which hold the domain object, the property that failed (called an 'aspect'), and the description shown in the UI. So you could do a lot more than show the description...
----- Cheers, Sean -- View this message in context: http://forum.world.st/ANN-ValidationRevisited-alpha-tp4690680p4690694.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Max Leske wrote
I love the music you used in your screencast :D Sounds a bit like a telephone waiting line
Ha ha, it was just whatever random thing was on grooveshark while I was hacking :) ----- Cheers, Sean -- View this message in context: http://forum.world.st/ANN-ValidationRevisited-alpha-tp4690680p4690750.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Cool stuff indeed. And yes, some months ago I read Andres Valloud's 'A Mentoring Course on Smalltalk', also because you wrote about it on your blog - it is indeed one of the best books about programming (and Smalltalk), although a bit advanced. On 30 May 2013, at 08:58, Max Leske <maxleske@gmail.com> wrote:
I love the music you used in your screencast :D Sounds a bit like a telephone waiting line
I meant to write something funny about the music as well. I was expecting to hear a native English speaker, but no !
On 30.05.2013, at 08:52, stephane ducasse <stephane.ducasse@free.fr> wrote:
I started to read the chapter to understand.
Stef
stephane ducasse wrote
show us how you specify that?
It's a simple Spec UI, receiving announcements from the domain object. Whenever the model changes, the UI receives: modelChanged: anAnnouncement
failureList items: model validate failures.
#validate is the main entry point for the framework. You can call this on any domain object and the validation rules will be run. Under the hood are specialized SUnit classes. Here (on Nabble) is a screenshot of the validator class, a specialized TestCase which holds the rules for the object in the screencast: <http://forum.world.st/file/n4690694/Screen_Shot_2013-05-29_at_5.37.12_PM.png>
The really cool thing which is not shown in the video is that the failures are real objects which hold the domain object, the property that failed (called an 'aspect'), and the description shown in the UI. So you could do a lot more than show the description...
----- Cheers, Sean -- View this message in context: http://forum.world.st/ANN-ValidationRevisited-alpha-tp4690680p4690694.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
stephane ducasse wrote
I started to read the chapter to understand.
After talking with Andres, I found out he did an implementation in VW called Assessments that went far beyond the book. One more reason to get cross-platform filetree/cypress working ;) But I'm fascinated by the idea of ongoingly monitoring the health of models. It would be great for SimplePersistence and other serialization libraries to check the model after materializing to make sure everything is as expected. The potential for really non-intrusive UI validation is obvious, and exciting too! ----- Cheers, Sean -- View this message in context: http://forum.world.st/ANN-ValidationRevisited-alpha-tp4690680p4690751.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
On May 30, 2013, at 12:36 PM, Sean P. DeNigris <sean@clipperadams.com> wrote:
stephane ducasse wrote
I started to read the chapter to understand.
After talking with Andres, I found out he did an implementation in VW called Assessments that went far beyond the book. One more reason to get cross-platform filetree/cypress working ;) But I'm fascinated by the idea of ongoingly monitoring the health of models. It would be great for SimplePersistence and other serialization libraries to check the model after materializing to make sure everything is as expected. The potential for really non-intrusive UI validation is obvious, and exciting too!
yes he presented it at amsterdam and it looks really interesting.
----- Cheers, Sean -- View this message in context: http://forum.world.st/ANN-ValidationRevisited-alpha-tp4690680p4690751.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
participants (5)
-
Max Leske -
Sean P. DeNigris -
stephane ducasse -
Stéphane Ducasse -
Sven Van Caekenberghe