[Pharo-project] EventInterceptor and MessageSendTree
Dear all, I've attached a little cool tool for intercepting Morphic events I just resurrected today, from the class comments: This morph is a button which, when pressed, begins listening to the hand's event stream. When an even of the appropriate type is encountered, this morph intercepts it and traces the dispatch of the event using MessageSendTree, and opens a SendTreeExplorer on the results. This is useful for debugging parts of the UI process which are otherwise difficult to trace. The eventType can be any of the Morphic event types, but #mouseUp, #mouseDown, and #keystroke are by far the most useful because they are the triggers for the majority of actual UI activity. This is a list of morphic events to try: #mouseDown #mouseMove #mouseUp #mouseOver #mouseEnter #mouseLeave #mouseLeaveDragging #keystroke #keyDown #keyUp #unknown #click To install it load first MessageSendTree. The original author is Jesse Welton http://jwelton.v-space.org/squeak/ Cheers, Hernán
Em 06/12/2009 05:25, Hernán Morales Durand <hernan.morales@gmail.com> escreveu:
Dear all, I've attached a little cool tool for intercepting Morphic events I just resurrected today, from the class comments:
[snipped] Interesting! Let's see if with help of it we manage to squash two bugs pending for release of Pharo 1.0!! -- Cesar Rabak
Hi Hernán, Can you describe a situation when you needed this? Alexandre On 6 Dec 2009, at 04:25, Hernán Morales Durand wrote:
Dear all, I've attached a little cool tool for intercepting Morphic events I just resurrected today, from the class comments:
This morph is a button which, when pressed, begins listening to the hand's event stream. When an even of the appropriate type is encountered, this morph intercepts it and traces the dispatch of the event using MessageSendTree, and opens a SendTreeExplorer on the results. This is useful for debugging parts of the UI process which are otherwise difficult to trace. The eventType can be any of the Morphic event types, but #mouseUp, #mouseDown, and #keystroke are by far the most useful because they are the triggers for the majority of actual UI activity.
This is a list of morphic events to try:
#mouseDown #mouseMove #mouseUp #mouseOver #mouseEnter #mouseLeave #mouseLeaveDragging
#keystroke #keyDown #keyUp
#unknown #click
To install it load first MessageSendTree. The original author is Jesse Welton http://jwelton.v-space.org/squeak/
Cheers,
Hernán <MessageSendTree-hfm.1.mcz><EventInterceptor-hfm. 1.mcz>_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi Alex, Of course, I'm using it to observe what's the best place to hook an interceptor (like a method wrapper) for a wayfinder tool I'm developing, i.e. modeling conceptual route knowledge and then replaying landmarked routes for learning purposes. Implementing a keylogger could be another interesting place to start using this tool as you may see all the possible methods to intercept a keystroke. Concerning debugging I didn't experimented, but maybe a situation where a click freezes the image...IIRC there was a bug in Pharo trying to grab the world and then releasing the attached world... now is somewhat closed but is a possible scenario to see the stack trace. Cheers, Hernán 2009/12/6 Alexandre Bergel <alexandre@bergel.eu>:
Hi Hernán,
Can you describe a situation when you needed this?
Alexandre
On 6 Dec 2009, at 04:25, Hernán Morales Durand wrote:
Dear all, Â I've attached a little cool tool for intercepting Morphic events I just resurrected today, from the class comments:
This morph is a button which, when pressed, begins listening to the hand's event stream. Â When an even of the appropriate type is encountered, this morph intercepts it and traces the dispatch of the event using MessageSendTree, and opens a SendTreeExplorer on the results. Â This is useful for debugging parts of the UI process which are otherwise difficult to trace. The eventType can be any of the Morphic event types, but #mouseUp, #mouseDown, and #keystroke are by far the most useful because they are the triggers for the majority of actual UI activity.
This is a list of morphic events to try:
#mouseDown #mouseMove #mouseUp #mouseOver #mouseEnter #mouseLeave #mouseLeaveDragging
#keystroke #keyDown #keyUp
#unknown #click
To install it load first MessageSendTree. The original author is Jesse Welton http://jwelton.v-space.org/squeak/
Cheers,
Hernán <MessageSendTree-hfm.1.mcz><EventInterceptor-hfm. 1.mcz>_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel  http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Looks good! Do you visualize those landmarked routes? Cheers, Alexandre On 7 Dec 2009, at 18:25, Hernán Morales Durand wrote:
Hi Alex, Of course, I'm using it to observe what's the best place to hook an interceptor (like a method wrapper) for a wayfinder tool I'm developing, i.e. modeling conceptual route knowledge and then replaying landmarked routes for learning purposes. Implementing a keylogger could be another interesting place to start using this tool as you may see all the possible methods to intercept a keystroke. Concerning debugging I didn't experimented, but maybe a situation where a click freezes the image...IIRC there was a bug in Pharo trying to grab the world and then releasing the attached world... now is somewhat closed but is a possible scenario to see the stack trace. Cheers,
Hernán
2009/12/6 Alexandre Bergel <alexandre@bergel.eu>:
Hi Hernán,
Can you describe a situation when you needed this?
Alexandre
On 6 Dec 2009, at 04:25, Hernán Morales Durand wrote:
Dear all, I've attached a little cool tool for intercepting Morphic events I just resurrected today, from the class comments:
This morph is a button which, when pressed, begins listening to the hand's event stream. When an even of the appropriate type is encountered, this morph intercepts it and traces the dispatch of the event using MessageSendTree, and opens a SendTreeExplorer on the results. This is useful for debugging parts of the UI process which are otherwise difficult to trace. The eventType can be any of the Morphic event types, but #mouseUp, #mouseDown, and #keystroke are by far the most useful because they are the triggers for the majority of actual UI activity.
This is a list of morphic events to try:
#mouseDown #mouseMove #mouseUp #mouseOver #mouseEnter #mouseLeave #mouseLeaveDragging
#keystroke #keyDown #keyUp
#unknown #click
To install it load first MessageSendTree. The original author is Jesse Welton http://jwelton.v-space.org/squeak/
Cheers,
Hernán <MessageSendTree-hfm.1.mcz><EventInterceptor-hfm. 1.mcz>_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi Alex, Sorry for the too late reply, I was really busy. Momentarily I'm testing with a simple grid to show the recorded routes, for example, "How to save a Package in Monticello" or "How to create a Seaside root component". But this is work in progress and it will take some time to complete. Cheers, Hernán 2009/12/9 Alexandre Bergel <alexandre@bergel.eu>:
Looks good! Do you visualize those landmarked routes?
Cheers, Alexandre
On 7 Dec 2009, at 18:25, Hernán Morales Durand wrote:
Hi Alex, Â Of course, I'm using it to observe what's the best place to hook an interceptor (like a method wrapper) for a wayfinder tool I'm developing, i.e. modeling conceptual route knowledge and then replaying landmarked routes for learning purposes. Implementing a keylogger could be another interesting place to start using this tool as you may see all the possible methods to intercept a keystroke. Â Concerning debugging I didn't experimented, but maybe a situation where a click freezes the image...IIRC there was a bug in Pharo trying to grab the world and then releasing the attached world... now is somewhat closed but is a possible scenario to see the stack trace. Cheers,
Hernán
2009/12/6 Alexandre Bergel <alexandre@bergel.eu>:
Hi Hernán,
Can you describe a situation when you needed this?
Alexandre
On 6 Dec 2009, at 04:25, Hernán Morales Durand wrote:
Dear all, Â I've attached a little cool tool for intercepting Morphic events I just resurrected today, from the class comments:
This morph is a button which, when pressed, begins listening to the hand's event stream. Â When an even of the appropriate type is encountered, this morph intercepts it and traces the dispatch of the event using MessageSendTree, and opens a SendTreeExplorer on the results. Â This is useful for debugging parts of the UI process which are otherwise difficult to trace. The eventType can be any of the Morphic event types, but #mouseUp, #mouseDown, and #keystroke are by far the most useful because they are the triggers for the majority of actual UI activity.
This is a list of morphic events to try:
#mouseDown #mouseMove #mouseUp #mouseOver #mouseEnter #mouseLeave #mouseLeaveDragging
#keystroke #keyDown #keyUp
#unknown #click
To install it load first MessageSendTree. The original author is Jesse Welton http://jwelton.v-space.org/squeak/
Cheers,
Hernán <MessageSendTree-hfm.1.mcz><EventInterceptor-hfm. 1.mcz>_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel  http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel  http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
hernan this sounds cool. Keep pushing that. We need better tools to analyseour living system. stef On Dec 7, 2009, at 10:25 PM, Hernán Morales Durand wrote:
Hi Alex, Of course, I'm using it to observe what's the best place to hook an interceptor (like a method wrapper) for a wayfinder tool I'm developing, i.e. modeling conceptual route knowledge and then replaying landmarked routes for learning purposes. Implementing a keylogger could be another interesting place to start using this tool as you may see all the possible methods to intercept a keystroke. Concerning debugging I didn't experimented, but maybe a situation where a click freezes the image...IIRC there was a bug in Pharo trying to grab the world and then releasing the attached world... now is somewhat closed but is a possible scenario to see the stack trace. Cheers,
Hernán
2009/12/6 Alexandre Bergel <alexandre@bergel.eu>:
Hi Hernán,
Can you describe a situation when you needed this?
Alexandre
On 6 Dec 2009, at 04:25, Hernán Morales Durand wrote:
Dear all, I've attached a little cool tool for intercepting Morphic events I just resurrected today, from the class comments:
This morph is a button which, when pressed, begins listening to the hand's event stream. When an even of the appropriate type is encountered, this morph intercepts it and traces the dispatch of the event using MessageSendTree, and opens a SendTreeExplorer on the results. This is useful for debugging parts of the UI process which are otherwise difficult to trace. The eventType can be any of the Morphic event types, but #mouseUp, #mouseDown, and #keystroke are by far the most useful because they are the triggers for the majority of actual UI activity.
This is a list of morphic events to try:
#mouseDown #mouseMove #mouseUp #mouseOver #mouseEnter #mouseLeave #mouseLeaveDragging
#keystroke #keyDown #keyUp
#unknown #click
To install it load first MessageSendTree. The original author is Jesse Welton http://jwelton.v-space.org/squeak/
Cheers,
Hernán <MessageSendTree-hfm.1.mcz><EventInterceptor-hfm. 1.mcz>_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
participants (4)
-
Alexandre Bergel -
csrabak@bol.com.br -
Hernán Morales Durand -
Stéphane Ducasse