[ann] gtspotter: a moldable interface for spotting objects

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

[ann] gtspotter: a moldable interface for spotting objects

Tudor Girba-2
Hi,

Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit: 
GTSpotter, a novel interface for spotting objects.

GTSpotter has two goals:
- Provide a uniform yet moldable interface that can work on any object, and
- Handle searching through arbitrary levels of object nesting.

We think this will have a significant impact on the development workflow in Pharo.

Here is a couple of screenshots:
Inline image 2 Inline image 1 Inline image 3


A trailer is available here:

A detailed description is available here:

It works already in Pharo 3.0 and can be played with by following the instructions from:

Please let us know what you think.

Enjoy,
The Glamorous Team
Reply | Threaded
Open this post in threaded view
|

Re: [ann] gtspotter: a moldable interface for spotting objects

jfabry
Hola,

Andrei demoed it to me on friday and it is *extremely* cool. I can’t wait to start using it for my next development session.

I have one request though (as I already mentioned to Andrei). Since you are using a significant part of the screen, it would not be costly to (e.g. at the bottom) put a small legend of the non-obvious keystroke combinations. It would greatly increase discoverability of the features of the tool.

Considering the blog post, the legend would be ( I don’t understand the difference between the last 2):
Cmd+Shift+ArrowUp/ArrowDown = Next/Prev category, Cmd+RightArrow = Dive into, Cmd+Shift+RightArrow = ???

> On Dec 7, 2014, at 10:14, Tudor Girba <[hidden email]> wrote:
>
> Hi,
>
> Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit:
> GTSpotter, a novel interface for spotting objects.
>
> GTSpotter has two goals:
> - Provide a uniform yet moldable interface that can work on any object, and
> - Handle searching through arbitrary levels of object nesting.
>
> We think this will have a significant impact on the development workflow in Pharo.
>
> Here is a couple of screenshots:
> <gtspotter-packages-classes.png> <gtspotter-dive-class-method-sender.png> <gtspotter-playground.png>
>
>
> A trailer is available here:
> https://www.youtube.com/watch?v=PhSmjR3NOlU
>
> A detailed description is available here:
> http://www.humane-assessment.com/blog/introducing-gtspotter
>
> It works already in Pharo 3.0 and can be played with by following the instructions from:
> http://gt.moosetechnology.org
>
> Please let us know what you think.
>
> Enjoy,
> The Glamorous Team



---> Save our in-boxes! http://emailcharter.org <---

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD lab  -  Computer Science Department (DCC)  -  University of Chile


Reply | Threaded
Open this post in threaded view
|

Re: [Esug-list] [ann] gtspotter: a moldable interface for spotting objects

Tudor Girba-2
Hi,

Yes, we will still evolve the UI. At the very least you will get the shortkeys directly on the actions.

The answer to your question is in the blog post:
GTSpotter offers an extra action: diving in a category. Pressing Cmd+Shift+ArrowRight dives in the collection object containing only the items from that category. Thus, we can continue refining the search inside the category.

So, you will open the collection of that sub-category and you will see more items at once (not just 5). Is it clearer now?

Cheers,
Doru

On Sun, Dec 7, 2014 at 2:52 PM, Johan Fabry <[hidden email]> wrote:
Hola,

Andrei demoed it to me on friday and it is *extremely* cool. I can’t wait to start using it for my next development session.

I have one request though (as I already mentioned to Andrei). Since you are using a significant part of the screen, it would not be costly to (e.g. at the bottom) put a small legend of the non-obvious keystroke combinations. It would greatly increase discoverability of the features of the tool.

Considering the blog post, the legend would be ( I don’t understand the difference between the last 2):
Cmd+Shift+ArrowUp/ArrowDown = Next/Prev category, Cmd+RightArrow = Dive into, Cmd+Shift+RightArrow = ???

> On Dec 7, 2014, at 10:14, Tudor Girba <[hidden email]> wrote:
>
> Hi,
>
> Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit:
> GTSpotter, a novel interface for spotting objects.
>
> GTSpotter has two goals:
> - Provide a uniform yet moldable interface that can work on any object, and
> - Handle searching through arbitrary levels of object nesting.
>
> We think this will have a significant impact on the development workflow in Pharo.
>
> Here is a couple of screenshots:
> <gtspotter-packages-classes.png> <gtspotter-dive-class-method-sender.png> <gtspotter-playground.png>
>
>
> A trailer is available here:
> https://www.youtube.com/watch?v=PhSmjR3NOlU
>
> A detailed description is available here:
> http://www.humane-assessment.com/blog/introducing-gtspotter
>
> It works already in Pharo 3.0 and can be played with by following the instructions from:
> http://gt.moosetechnology.org
>
> Please let us know what you think.
>
> Enjoy,
> The Glamorous Team



---> Save our in-boxes! http://emailcharter.org <---

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD lab  -  Computer Science Department (DCC)  -  University of Chile


_______________________________________________
Esug-list mailing list
[hidden email]
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org



--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: [ann] gtspotter: a moldable interface for spotting objects

Thierry Goubier
In reply to this post by Tudor Girba-2
Cool.

Interesting. I recognize some of the patterns I use, but in a slightly different form.

The widget look very nice and clean. I'd worry about having a very long top-level list, and I know that some of the search patterns are a bit less efficient than what I use today.

I'm impressed by the amount of work going into that.

Thierry

2014-12-07 14:14 GMT+01:00 Tudor Girba <[hidden email]>:
Hi,

Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit: 
GTSpotter, a novel interface for spotting objects.

GTSpotter has two goals:
- Provide a uniform yet moldable interface that can work on any object, and
- Handle searching through arbitrary levels of object nesting.

We think this will have a significant impact on the development workflow in Pharo.

Here is a couple of screenshots:
Inline image 2 Inline image 1 Inline image 3


A trailer is available here:

A detailed description is available here:

It works already in Pharo 3.0 and can be played with by following the instructions from:

Please let us know what you think.

Enjoy,
The Glamorous Team

Reply | Threaded
Open this post in threaded view
|

Re: [Esug-list] [ann] gtspotter: a moldable interface for spotting objects

Tudor Girba-2
In reply to this post by Tudor Girba-2
Thanks, Stef.

On Sun, Dec 7, 2014 at 2:35 PM, stephane ducasse <[hidden email]> wrote:
Truly excellent! 
I have to try :)
I read the blog (I love the marketing efforts and the documentation effort) :)
Now do you a shortcut for finding a 
- senders? 
- a specific method of a class?

This first incarnation of the interface is meant to replace the top level search because that was easier. There is more to come, and we definitely will get to replace the senders, and integrate it even deeper in the workflow
 
Last time I found myself looking for the sender of x but only inside the implementor of y.
and of course I wanted to refactored them. And the default message browser is not parametrized via an environment :_

Exactly. This problem exists in any IDE I know.

Doru
 
Stef

On 07 Dec 2014, at 05:14, Tudor Girba <[hidden email]> wrote:

Hi,

Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit: 
GTSpotter, a novel interface for spotting objects.

GTSpotter has two goals:
- Provide a uniform yet moldable interface that can work on any object, and
- Handle searching through arbitrary levels of object nesting.

We think this will have a significant impact on the development workflow in Pharo.

Here is a couple of screenshots:
<gtspotter-packages-classes.png> <gtspotter-dive-class-method-sender.png> <gtspotter-playground.png>


A trailer is available here:

A detailed description is available here:

It works already in Pharo 3.0 and can be played with by following the instructions from:

Please let us know what you think.

Enjoy,
The Glamorous Team
_______________________________________________
Esug-list mailing list
[hidden email]
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org




--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: [Esug-list] [ann] gtspotter: a moldable interface for spotting objects

Thierry Goubier


2014-12-07 15:56 GMT+01:00 Tudor Girba <[hidden email]>:
Thanks, Stef.

On Sun, Dec 7, 2014 at 2:35 PM, stephane ducasse <[hidden email]> wrote:
Last time I found myself looking for the sender of x but only inside the implementor of y.
and of course I wanted to refactored them. And the default message browser is not parametrized via an environment :_

Exactly. This problem exists in any IDE I know.

AltBrowser has that type of search builtin. Not the refactoring step, still.

RBEnvironment allows that easily, it's just that the tools are not designed for it.

Thierry
 

Doru
 
Stef

On 07 Dec 2014, at 05:14, Tudor Girba <[hidden email]> wrote:

Hi,

Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit: 
GTSpotter, a novel interface for spotting objects.

GTSpotter has two goals:
- Provide a uniform yet moldable interface that can work on any object, and
- Handle searching through arbitrary levels of object nesting.

We think this will have a significant impact on the development workflow in Pharo.

Here is a couple of screenshots:
<gtspotter-packages-classes.png> <gtspotter-dive-class-method-sender.png> <gtspotter-playground.png>


A trailer is available here:

A detailed description is available here:

It works already in Pharo 3.0 and can be played with by following the instructions from:

Please let us know what you think.

Enjoy,
The Glamorous Team
_______________________________________________
Esug-list mailing list
[hidden email]
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org




--

"Every thing has its own flow"

Reply | Threaded
Open this post in threaded view
|

Re: [Esug-list] [ann] gtspotter: a moldable interface for spotting objects

Tudor Girba-2
In reply to this post by Tudor Girba-2
Hi,

This is indeed a significant challenge. Until that point we need a couple of more features, of which the most important is the preview for the selected object. This will come and then we can consider what we can do with it.

But, in the meantime, there are a lot of use cases nobody ever considered exactly because there was no easy way to consider them. Like finding all the methods from CodeHolder* that are annotated with <systemsettings>. Or like searching a Person in a Agenda model that someone develops.

The cool thing is that you can program this yourself :).

Cheers,
Doru


On Sun, Dec 7, 2014 at 4:05 PM, stephane ducasse <[hidden email]> wrote:

On 07 Dec 2014, at 06:56, Tudor Girba <[hidden email]> wrote:

Thanks, Stef.

On Sun, Dec 7, 2014 at 2:35 PM, stephane ducasse <[hidden email]> wrote:
Truly excellent! 
I have to try :)
I read the blog (I love the marketing efforts and the documentation effort) :)
Now do you a shortcut for finding a 
- senders? 
- a specific method of a class?

This first incarnation of the interface is meant to replace the top level search because that was easier. There is more to come, and we definitely will get to replace the senders, and integrate it even deeper in the workflow


A challenge that I would like to propose to the GTteam is the following one:

Often when I change code (for example, change the API of menus and want to make it clean)
I look at all the senders and sender of senders and implementors and senders ….
What I do is that I stack the browser in the stack where the top are the leaves that I should treat and the next elements are the user of the leaves….
Then what I do I have a physical stack of senders/implementors and I start fixing the top of the stack 
and I pop. 

So the old Omnibrowser based senders/implementors nevers worked to me because I could never understand 
what I was browsing (senders or implementers and where I was in the stack or search tree).

So my challenge is
- how can we support mixing senders and implementors taxes (not mixing the two)
- how can we support the navigation with the tree of such tasks.

I’m not sure that it should be in GTSpotter and many having a tree structure could help. 
Stef


 
Last time I found myself looking for the sender of x but only inside the implementor of y.
and of course I wanted to refactored them. And the default message browser is not parametrized via an environment :_

Exactly. This problem exists in any IDE I know.

Really? I’m surprised because it seems so obvious (if we had a couple million dollars… but we have cool guys)


 
Doru
 
Stef

On 07 Dec 2014, at 05:14, Tudor Girba <[hidden email]> wrote:

Hi,

Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit: 
GTSpotter, a novel interface for spotting objects.

GTSpotter has two goals:
- Provide a uniform yet moldable interface that can work on any object, and
- Handle searching through arbitrary levels of object nesting.

We think this will have a significant impact on the development workflow in Pharo.

Here is a couple of screenshots:
<gtspotter-packages-classes.png> <gtspotter-dive-class-method-sender.png> <gtspotter-playground.png>


A trailer is available here:

A detailed description is available here:

It works already in Pharo 3.0 and can be played with by following the instructions from:

Please let us know what you think.

Enjoy,
The Glamorous Team
_______________________________________________
Esug-list mailing list
[hidden email]
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org




--

"Every thing has its own flow"




--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: [Esug-list] [ann] gtspotter: a moldable interface for spotting objects

Tudor Girba-2
:)

I know how this feels. On the other hand, with this one we target 15 minutes (= the coffee break) :)

Doru

On Sun, Dec 7, 2014 at 4:20 PM, stephane ducasse <[hidden email]> wrote:

Hi,

This is indeed a significant challenge. Until that point we need a couple of more features, of which the most important is the preview for the selected object. This will come and then we can consider what we can do with it.

But, in the meantime, there are a lot of use cases nobody ever considered exactly because there was no easy way to consider them. Like finding all the methods from CodeHolder* that are annotated with <systemsettings>. Or like searching a Person in a Agenda model that someone develops.

The cool thing is that you can program this yourself :).

:)
Don’t get me tempted :)

I have boring tasks to do :)

Stef




--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: [Moose-dev] [ann] gtspotter: a moldable interface for spotting objects

Sven Van Caekenberghe-2
In reply to this post by Tudor Girba-2

> On 07 Dec 2014, at 14:14, Tudor Girba <[hidden email]> wrote:
>
> Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit:
> GTSpotter, a novel interface for spotting objects.

Excellent work, all around. Congratulations to the team. Thank you for pushing things like this, for thinking differently.

Yes, I want this in Pharo 4 too, ASAP (especially since the main shortcut is different from the old one, cmd+Enter vs. shift+Enter).

The presentation is again very well done too: excellent article, super movie. You are putting the bar very high for the rest of us ;-)

A suggestion/idea: would it be possible to take the current selection anywhere and feed it into Spotter ? That way there would be very good way to make it replace all the other shortcuts: you would get implementers, senders, references almost for free.

Sven


Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-dev] [Moose-dev] [ann] gtspotter: a moldable interface for spotting objects

Tudor Girba-2
Hi Sven,

Thanks for the kind words. Indeed, having the current selection is one of the things we should keep in mind. For that we need to go to the next step and integrate the interface in the overall environment. This will certainly come.

Cheers,
Doru



On Sun, Dec 7, 2014 at 6:57 PM, Sven Van Caekenberghe <[hidden email]> wrote:

> On 07 Dec 2014, at 14:14, Tudor Girba <[hidden email]> wrote:
>
> Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit:
> GTSpotter, a novel interface for spotting objects.

Excellent work, all around. Congratulations to the team. Thank you for pushing things like this, for thinking differently.

Yes, I want this in Pharo 4 too, ASAP (especially since the main shortcut is different from the old one, cmd+Enter vs. shift+Enter).

The presentation is again very well done too: excellent article, super movie. You are putting the bar very high for the rest of us ;-)

A suggestion/idea: would it be possible to take the current selection anywhere and feed it into Spotter ? That way there would be very good way to make it replace all the other shortcuts: you would get implementers, senders, references almost for free.

Sven





--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: [ann] gtspotter: a moldable interface for spotting objects

Tudor Girba-2
In reply to this post by Thierry Goubier
Hi,

On Sun, Dec 7, 2014 at 3:52 PM, Thierry Goubier <[hidden email]> wrote:
Cool.

Interesting. I recognize some of the patterns I use, but in a slightly different form.

Could you detail? I am asking because I am interesting in search use cases to see if they can be expressed in terms of Spotter of if we need to extend the interface in some way. GTSpotter is supposed to be moldable thus, it is important for it to handle as many use cases as possible.
 
The widget look very nice and clean. I'd worry about having a very long top-level list, and I know that some of the search patterns are a bit less efficient than what I use today.

What do you mean by long top-level lists?
Do you refer to categories for which a query can show many results? In this case, our interface always limits the amount per category to 5. After reaching 5 items, the rest is being computed in a process with lower priority so as not to mess too much with the responsiveness of the UI. If you want to see more than 5, you can always dive in the category and then you focus only on that category. It seems to work well enough.

You should also take into account that most widgets you see are hand-made in a lighter Morphic (called Brick) created by Alex Syrel. The goal of this one is to be fast and scalable.

Does that answer the question?
 

I'm impressed by the amount of work going into that.

Thanks. Indeed, the work was quite intensive and we went through 3 major variations of the implementations.

Cheers,
Doru

 

Thierry

2014-12-07 14:14 GMT+01:00 Tudor Girba <[hidden email]>:
Hi,

Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit: 
GTSpotter, a novel interface for spotting objects.

GTSpotter has two goals:
- Provide a uniform yet moldable interface that can work on any object, and
- Handle searching through arbitrary levels of object nesting.

We think this will have a significant impact on the development workflow in Pharo.

Here is a couple of screenshots:
Inline image 2 Inline image 1 Inline image 3


A trailer is available here:

A detailed description is available here:

It works already in Pharo 3.0 and can be played with by following the instructions from:

Please let us know what you think.

Enjoy,
The Glamorous Team




--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: [Esug-list] [ann] gtspotter: a moldable interface for spotting objects

Tudor Girba-2
In reply to this post by Thierry Goubier
Hi Thierry,

What I meant is that no IDE I know allows you to refine search through arbitrary levels of nesting. For example, looking for senders, filter, implementors, filter, senders, filter ...

Is the AltBrowser able to do that? If so, I missed this one.

Cheers,
Doru



On Sun, Dec 7, 2014 at 4:00 PM, Thierry Goubier <[hidden email]> wrote:


2014-12-07 15:56 GMT+01:00 Tudor Girba <[hidden email]>:
Thanks, Stef.

On Sun, Dec 7, 2014 at 2:35 PM, stephane ducasse <[hidden email]> wrote:
Last time I found myself looking for the sender of x but only inside the implementor of y.
and of course I wanted to refactored them. And the default message browser is not parametrized via an environment :_

Exactly. This problem exists in any IDE I know.

AltBrowser has that type of search builtin. Not the refactoring step, still.

RBEnvironment allows that easily, it's just that the tools are not designed for it.

Thierry
 

Doru
 
Stef

On 07 Dec 2014, at 05:14, Tudor Girba <[hidden email]> wrote:

Hi,

Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit: 
GTSpotter, a novel interface for spotting objects.

GTSpotter has two goals:
- Provide a uniform yet moldable interface that can work on any object, and
- Handle searching through arbitrary levels of object nesting.

We think this will have a significant impact on the development workflow in Pharo.

Here is a couple of screenshots:
<gtspotter-packages-classes.png> <gtspotter-dive-class-method-sender.png> <gtspotter-playground.png>


A trailer is available here:

A detailed description is available here:

It works already in Pharo 3.0 and can be played with by following the instructions from:

Please let us know what you think.

Enjoy,
The Glamorous Team
_______________________________________________
Esug-list mailing list
[hidden email]
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org




--

"Every thing has its own flow"




--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-dev] [Moose-dev] [ann] gtspotter: a moldable interface for spotting objects

Sven Van Caekenberghe-2
In reply to this post by Tudor Girba-2
Doru,

One of the things/aspects that I miss a bit is the 'objects' part. In your overall description/presentation you talk about 'objects', but right now I would say it are mainly 'code objects' like classes & methods and friends, and some IDE artefacts, like menus.

What about arbitrary (user) objects ?

Literal constants, like 123, 'some string' ?
Globals like the Transcript ?
Singletons accessible by class side accessors, like announcers ?
An evaluation functionality, just type an expression ?
Examples ?
The clipboard (contents), open windows, processes, ...

Anyway, I am sure you get the idea ;-)

Sven

> On 07 Dec 2014, at 19:07, Tudor Girba <[hidden email]> wrote:
>
> Hi Sven,
>
> Thanks for the kind words. Indeed, having the current selection is one of the things we should keep in mind. For that we need to go to the next step and integrate the interface in the overall environment. This will certainly come.
>
> Cheers,
> Doru
>
>
>
> On Sun, Dec 7, 2014 at 6:57 PM, Sven Van Caekenberghe <[hidden email]> wrote:
>
> > On 07 Dec 2014, at 14:14, Tudor Girba <[hidden email]> wrote:
> >
> > Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit:
> > GTSpotter, a novel interface for spotting objects.
>
> Excellent work, all around. Congratulations to the team. Thank you for pushing things like this, for thinking differently.
>
> Yes, I want this in Pharo 4 too, ASAP (especially since the main shortcut is different from the old one, cmd+Enter vs. shift+Enter).
>
> The presentation is again very well done too: excellent article, super movie. You are putting the bar very high for the rest of us ;-)
>
> A suggestion/idea: would it be possible to take the current selection anywhere and feed it into Spotter ? That way there would be very good way to make it replace all the other shortcuts: you would get implementers, senders, references almost for free.
>
> Sven
>
>
>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"


Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-dev] [Moose-dev] [ann] gtspotter: a moldable interface for spotting objects

Tudor Girba-2
Hi Sven,

Exactly! :)

To be relevant, we had to show how it solves existing use cases (plus a bit more :)). Next we will focus on objects that are less "code". The hard part of actually getting the interface smooth and performant was kind of done. It's play time now :).

As I noted in the post, we already have some 30 extensions for handling these cases. This was actually easy. The menu is an example of how we used this concept to approach a problem that is classically dealt with in a completely different way.

There are a couple of things we did not show yet. For example, we already have a simple implementation of how to make a Moose model completely browseable through this interface.

But, as with the inspector, the coolest thing is that if someone has a specific need, it is even simpler than with the inspector to hook that need in the system and make it searchable. Your list is definitely exciting, and I am hoping that people will start playing a bit and discover things we otherwise would not consider. It should be easier than with the inspector (because there are less things to specify, hence less variation).

And wait to see what happens when we start to combine this interface with others. For example, the interesting thing about being able to search a menu is that you can actually open any menu with a spotter, which essentially has the potential of changing the way we deal with contextual actions (all through keybindings without shortcuts). I am quite sure we are just scratching the surface of what is possible.

So, let's play together :).

Cheers,
Doru


On Sun, Dec 7, 2014 at 10:35 PM, Sven Van Caekenberghe <[hidden email]> wrote:
Doru,

One of the things/aspects that I miss a bit is the 'objects' part. In your overall description/presentation you talk about 'objects', but right now I would say it are mainly 'code objects' like classes & methods and friends, and some IDE artefacts, like menus.

What about arbitrary (user) objects ?

Literal constants, like 123, 'some string' ?
Globals like the Transcript ?
Singletons accessible by class side accessors, like announcers ?
An evaluation functionality, just type an expression ?
Examples ?
The clipboard (contents), open windows, processes, ...

Anyway, I am sure you get the idea ;-)

Sven

> On 07 Dec 2014, at 19:07, Tudor Girba <[hidden email]> wrote:
>
> Hi Sven,
>
> Thanks for the kind words. Indeed, having the current selection is one of the things we should keep in mind. For that we need to go to the next step and integrate the interface in the overall environment. This will certainly come.
>
> Cheers,
> Doru
>
>
>
> On Sun, Dec 7, 2014 at 6:57 PM, Sven Van Caekenberghe <[hidden email]> wrote:
>
> > On 07 Dec 2014, at 14:14, Tudor Girba <[hidden email]> wrote:
> >
> > Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit:
> > GTSpotter, a novel interface for spotting objects.
>
> Excellent work, all around. Congratulations to the team. Thank you for pushing things like this, for thinking differently.
>
> Yes, I want this in Pharo 4 too, ASAP (especially since the main shortcut is different from the old one, cmd+Enter vs. shift+Enter).
>
> The presentation is again very well done too: excellent article, super movie. You are putting the bar very high for the rest of us ;-)
>
> A suggestion/idea: would it be possible to take the current selection anywhere and feed it into Spotter ? That way there would be very good way to make it replace all the other shortcuts: you would get implementers, senders, references almost for free.
>
> Sven
>
>
>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"





--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: [ann] gtspotter: a moldable interface for spotting objects

Thierry Goubier
In reply to this post by Tudor Girba-2


2014-12-07 20:19 GMT+01:00 Tudor Girba <[hidden email]>:
Hi,

On Sun, Dec 7, 2014 at 3:52 PM, Thierry Goubier <[hidden email]> wrote:
Cool.

Interesting. I recognize some of the patterns I use, but in a slightly different form.

Could you detail? I am asking because I am interesting in search use cases to see if they can be expressed in terms of Spotter of if we need to extend the interface in some way. GTSpotter is supposed to be moldable thus, it is important for it to handle as many use cases as possible.

Well, the hierarchical, drill-down type of recursive searches is something I do regularly, so I can relate. They are not as general; they revolve as a cascading sequence of implementors/finder/senders/accesses/package/class searches, but from inside the browser (but, since a search result is given in a browser, then you can keep drilling down).
 
 
The widget look very nice and clean. I'd worry about having a very long top-level list, and I know that some of the search patterns are a bit less efficient than what I use today.

What do you mean by long top-level lists?
Do you refer to categories for which a query can show many results? In this case, our interface always limits the amount per category to 5. After reaching 5 items, the rest is being computed in a process with lower priority so as not to mess too much with the responsiveness of the UI. If you want to see more than 5, you can always dive in the category and then you focus only on that category. It seems to work well enough.

Ok. I see how you are targetting that. I was thinking of what would happen if you have many extensions going into the root items.
 

You should also take into account that most widgets you see are hand-made in a lighter Morphic (called Brick) created by Alex Syrel. The goal of this one is to be fast and scalable.

Cool. It's an issue for many things, and its great to see someone tackling speed issues.

I dropped some type of Morphs for that reason.
 

Does that answer the question?

Yes, it did.
 

I'm impressed by the amount of work going into that.

Thanks. Indeed, the work was quite intensive and we went through 3 major variations of the implementations.

What was I told about Smalltalk the very first time I had to use it as a student? "the language where you can break and redo all your code in a very short time.".

Thierry


 

Cheers,
Doru

 

Thierry

2014-12-07 14:14 GMT+01:00 Tudor Girba <[hidden email]>:
Hi,

Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit: 
GTSpotter, a novel interface for spotting objects.

GTSpotter has two goals:
- Provide a uniform yet moldable interface that can work on any object, and
- Handle searching through arbitrary levels of object nesting.

We think this will have a significant impact on the development workflow in Pharo.

Here is a couple of screenshots:
Inline image 2 Inline image 1 Inline image 3


A trailer is available here:

A detailed description is available here:

It works already in Pharo 3.0 and can be played with by following the instructions from:

Please let us know what you think.

Enjoy,
The Glamorous Team




--

"Every thing has its own flow"

Reply | Threaded
Open this post in threaded view
|

Re: [ann] gtspotter: a moldable interface for spotting objects

Tudor Girba-2
Hi,

On Mon, Dec 8, 2014 at 12:29 AM, Thierry Goubier <[hidden email]> wrote:


2014-12-07 20:19 GMT+01:00 Tudor Girba <[hidden email]>:
Hi,

On Sun, Dec 7, 2014 at 3:52 PM, Thierry Goubier <[hidden email]> wrote:
Cool.

Interesting. I recognize some of the patterns I use, but in a slightly different form.

Could you detail? I am asking because I am interesting in search use cases to see if they can be expressed in terms of Spotter of if we need to extend the interface in some way. GTSpotter is supposed to be moldable thus, it is important for it to handle as many use cases as possible.

Well, the hierarchical, drill-down type of recursive searches is something I do regularly, so I can relate. They are not as general; they revolve as a cascading sequence of implementors/finder/senders/accesses/package/class searches, but from inside the browser (but, since a search result is given in a browser, then you can keep drilling down).
 
 
The widget look very nice and clean. I'd worry about having a very long top-level list, and I know that some of the search patterns are a bit less efficient than what I use today.

What do you mean by long top-level lists?
Do you refer to categories for which a query can show many results? In this case, our interface always limits the amount per category to 5. After reaching 5 items, the rest is being computed in a process with lower priority so as not to mess too much with the responsiveness of the UI. If you want to see more than 5, you can always dive in the category and then you focus only on that category. It seems to work well enough.

Ok. I see how you are targetting that. I was thinking of what would happen if you have many extensions going into the root items.

I see. We put quite some work in this issue actually. Originally, we showed the list of categories like in Spotlight on Mac, but then we noticed we do not know what categories actually provide a match. So, if you look closely, the widget shows all categories that are at the top and at the bottom of the visible items. As you scroll they scroll in and out of the main list. If there are too many on a row, the labels trim down nicely. We tried with a couple of dozens and it scales reasonably well. I think this widget is quite cool and rather unique (I have not seen this design anywhere else).

I will try to describe these design decisions in a future post.



You should also take into account that most widgets you see are hand-made in a lighter Morphic (called Brick) created by Alex Syrel. The goal of this one is to be fast and scalable.

Cool. It's an issue for many things, and its great to see someone tackling speed issues.

I dropped some type of Morphs for that reason.
 

Does that answer the question?

Yes, it did.
 

I'm impressed by the amount of work going into that.

Thanks. Indeed, the work was quite intensive and we went through 3 major variations of the implementations.

What was I told about Smalltalk the very first time I had to use it as a student? "the language where you can break and redo all your code in a very short time.".

Indeed. For us, that time was less than 2 months and we started from scratch.

Cheers,
Doru

 


Thierry


 

Cheers,
Doru

 

Thierry

2014-12-07 14:14 GMT+01:00 Tudor Girba <[hidden email]>:
Hi,

Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit: 
GTSpotter, a novel interface for spotting objects.

GTSpotter has two goals:
- Provide a uniform yet moldable interface that can work on any object, and
- Handle searching through arbitrary levels of object nesting.

We think this will have a significant impact on the development workflow in Pharo.

Here is a couple of screenshots:
Inline image 2 Inline image 1 Inline image 3


A trailer is available here:

A detailed description is available here:

It works already in Pharo 3.0 and can be played with by following the instructions from:

Please let us know what you think.

Enjoy,
The Glamorous Team




--

"Every thing has its own flow"




--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: [Esug-list] [ann] gtspotter: a moldable interface for spotting objects

Thierry Goubier
In reply to this post by Tudor Girba-2


2014-12-07 20:21 GMT+01:00 Tudor Girba <[hidden email]>:
>
> Hi Thierry,
>
> What I meant is that no IDE I know allows you to refine search through arbitrary levels of nesting. For example, looking for senders, filter, implementors, filter, senders, filter ...

 
>
>
> Is the AltBrowser able to do that? If so, I missed this one.

It is able to do that. It's very simple:

every search you do is answered as a browser instance scoped to the RBEnvironment containing the search results.

So, depending on what you search next, it happens in the current scope or in the parent scope, and recursively constrain the scope

The finder is integrated into that (i.e. finder searches, any type, are scoped to the RBEnvironment).

Refactoring commands are (should be) restricted to that scope.

Limitation: RB environments are not dynamic.

Thierry

Reply | Threaded
Open this post in threaded view
|

Re: [ann] gtspotter: a moldable interface for spotting objects

demarey
In reply to this post by Tudor Girba-2
Hi Doru and all,

Great work. All these tools are really moving the development experience a step forward :)
I will try it ASAP.
At this time, I just wonder if it is possible to search text in method sources. It is often useful.
Another related thing I don't know how to do, is to refactor a set of methods (could be some methods to 20 or more). In these methods, I send a specific message. Now, I just want to remove the message implementation (it is not a rename) and I have to update the code accordingly. Sometimes, I could do that by just a search/replace (text) functionality (would be cool to use patterns there) in methods source code but I cannot find a way do that for now. So I do it by hand.
I wonder if it already exists a way to do that or if GTSpotter could address this issue.

Christophe.

Le 7 déc. 2014 à 14:14, Tudor Girba a écrit :

Hi,

Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit: 
GTSpotter, a novel interface for spotting objects.

GTSpotter has two goals:
- Provide a uniform yet moldable interface that can work on any object, and
- Handle searching through arbitrary levels of object nesting.

We think this will have a significant impact on the development workflow in Pharo.

Here is a couple of screenshots:
<gtspotter-packages-classes.png> <gtspotter-dive-class-method-sender.png> <gtspotter-playground.png>


A trailer is available here:

A detailed description is available here:

It works already in Pharo 3.0 and can be played with by following the instructions from:

Please let us know what you think.

Enjoy,
The Glamorous Team


smime.p7s (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [ann] gtspotter: a moldable interface for spotting objects

Tudor Girba-2
Hi Christophe,

On Mon, Dec 8, 2014 at 10:43 AM, Christophe Demarey <[hidden email]> wrote:
Hi Doru and all,

Great work. All these tools are really moving the development experience a step forward :)
I will try it ASAP.
At this time, I just wonder if it is possible to search text in method sources. It is often useful.

It's not done now, but you can just add it. It should probably take you a couple of minutes :). Just try to follow the instructions from the end of the post and let us know how it goes.

 
Another related thing I don't know how to do, is to refactor a set of methods (could be some methods to 20 or more). In these methods, I send a specific message. Now, I just want to remove the message implementation (it is not a rename) and I have to update the code accordingly. Sometimes, I could do that by just a search/replace (text) functionality (would be cool to use patterns there) in methods source code but I cannot find a way do that for now. So I do it by hand.
I wonder if it already exists a way to do that or if GTSpotter could address this issue.

I think this is out of the direct realm of GTSpotter. But, it would be an interesting area nevertheless. We would likely be able to benefit from combining somehow RB rules with spotter.

Cheers,
Doru


 
Christophe.

Le 7 déc. 2014 à 14:14, Tudor Girba a écrit :

Hi,

Alex Syrel, Andrei Chis and I are happy to announce a new addition to the Glamorous Toolkit: 
GTSpotter, a novel interface for spotting objects.

GTSpotter has two goals:
- Provide a uniform yet moldable interface that can work on any object, and
- Handle searching through arbitrary levels of object nesting.

We think this will have a significant impact on the development workflow in Pharo.

Here is a couple of screenshots:
<gtspotter-packages-classes.png> <gtspotter-dive-class-method-sender.png> <gtspotter-playground.png>


A trailer is available here:

A detailed description is available here:

It works already in Pharo 3.0 and can be played with by following the instructions from:

Please let us know what you think.

Enjoy,
The Glamorous Team




--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: [Esug-list] [ann] gtspotter: a moldable interface for spotting objects

jfabry
In reply to this post by Tudor Girba-2
Sorry, but no :-(

I am always confused when people say ‘category’ because the word has so many overloaded meanings. The same happens in the blog post, it is not clear to me what category means here, and what does it have to do with the collection object?

> On Dec 7, 2014, at 11:16, Tudor Girba <[hidden email]> wrote:
>
> Hi,
>
> Yes, we will still evolve the UI. At the very least you will get the shortkeys directly on the actions.
>
> The answer to your question is in the blog post:
> GTSpotter offers an extra action: diving in a category. Pressing Cmd+Shift+ArrowRight dives in the collection object containing only the items from that category. Thus, we can continue refining the search inside the category.
>
> So, you will open the collection of that sub-category and you will see more items at once (not just 5). Is it clearer now?
>
> Cheers,
> Doru



---> Save our in-boxes! http://emailcharter.org <---

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD lab  -  Computer Science Department (DCC)  -  University of Chile


123