EventInterceptor and MessageSendTree

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

EventInterceptor and MessageSendTree

hernanmd
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

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

MessageSendTree-hfm.1.mcz (5K) Download Attachment
EventInterceptor-hfm.1.mcz (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: EventInterceptor and MessageSendTree

csrabak
Em 06/12/2009 05:25, Hernán Morales Durand <[hidden email]> 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

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: EventInterceptor and MessageSendTree

Alexandre Bergel
In reply to this post by hernanmd
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
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: EventInterceptor and MessageSendTree

hernanmd
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 <[hidden email]>:

> 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
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: EventInterceptor and MessageSendTree

Alexandre Bergel
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 <[hidden email]>:
>> 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
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: EventInterceptor and MessageSendTree

Stéphane Ducasse
In reply to this post by hernanmd
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 <[hidden email]>:
>> 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
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: EventInterceptor and MessageSendTree

hernanmd
In reply to this post by Alexandre Bergel
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 <[hidden email]>:

> 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 <[hidden email]>:
>>> 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
>>>> [hidden email]
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project