In the Browsers there is a line of buttons: "browse", "senders" etc.
One of the buttons is "vars" which when pressed brings up a GUI that allows you to select a variable and then a list of all methods using that variable is brought up from which you can select a method to inspect. Sometimes I only want to view the subset of the methods in which the variable is assigned. I have implemented this feature (new button to the right of "vars" labeled ":=") and find it to be very useful. I am wondering if this feature can be added to the next version of Squeak. I can send my code changes if someone is willing to do this but the changes required are small so my help may not be needed. If some do not like this feature (it's great really!) then perhaps it could be turned on or off depending on a Preferences setting. If this feature happens to be in 5.3 then my apologies for wasting peoples time. Ralph Boland |
Hi,
One can invoke this also with Cmd-a on the class, or somewhere in its pop-up menu. A button for it could be nice on touch screens though. There is no button space for all our favorite features though. Ralph, could you send a screenshot of your solution for a quick impression, please? Kings regards, Jakob Ralph Boland <[hidden email]> schrieb am Mo., 20. Jan. 2020, 18:35: In the Browsers there is a line of buttons: "browse", "senders" etc. |
Hi, this sounds great! It took me also a few months to find out that this feature "browse assignments" exists :) On the other hand, I think this makes the button row look even more overfilled. Another option might be to offer a pop-up menu similar to the code provenance button. This menu would have two items: 'references' and 'assignments'. Good for clarity, not so good for efficiency -- on the other hand, which person that wants to be efficient uses the button instead of <cmd>a?
A popular GUI element for such problems is the split button. Emphasises the default option of a series, but still provides fast access to the rest of series, too. But we don't have a pluggable implementation for this in Morphic so far, do we? Best,
Christoph
Von: Squeak-dev <[hidden email]> im Auftrag von Jakob Reschke <[hidden email]>
Gesendet: Montag, 20. Januar 2020 18:42:58 An: [hidden email]; The general-purpose Squeak developers list Betreff: Re: [squeak-dev] variable assignments button Hi,
One can invoke this also with Cmd-a on the class, or somewhere in its pop-up menu.
A button for it could be nice on touch screens though. There is no button space for all our favorite features though.
Ralph, could you send a screenshot of your solution for a quick impression, please?
Kings regards,
Jakob
Ralph Boland <[hidden email]> schrieb am Mo., 20. Jan. 2020, 18:35:
In the Browsers there is a line of buttons: "browse", "senders" etc.
Carpe Squeak!
|
Thiede, Christoph <[hidden email]> schrieb am Mo., 20. Jan. 2020, 19:51:
Tablet users while browsing, not writing ;-) |
Good point. But we're far away from a good touch concept at all, I guess :) Von: Squeak-dev <[hidden email]> im Auftrag von Jakob Reschke <[hidden email]>
Gesendet: Montag, 20. Januar 2020 19:55:19 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] variable assignments button Thiede, Christoph <[hidden email]> schrieb am Mo., 20. Jan. 2020, 19:51:
Tablet users while browsing, not writing ;-)
Carpe Squeak!
|
In reply to this post by Jakob Reschke
> Thiede, Christoph <[hidden email]> schrieb am Mo., 20. Jan. 2020, 19:51: > on the other hand, which person that wants to be efficient uses the button instead of <cmd>a? People used to preferring their mouse over keyboard. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim "Wibble" said Pooh the stress beginning to show. |
In reply to this post by Christoph Thiede
On Mon, Jan 20, 2020 at 12:51 PM Thiede, Christoph <[hidden email]> wrote:
We have an unpleasant mix of a "command-oriented" UI, where you select a command (instead of an object) and THEN the system prompts you, modally, for the object to apply that command to -- we should be moving AWAY from this, not toward -- mixed along with with our "object-oriented" UI, where you select the object first, THEN the contextual command to apply to it (via button or menu or hot-key). For example, you can select the instVar name (text) and use "References to it (N)" off the menu (or hot-key) to show all references to an instVar that way. It would be easy to add an additional menu entry for assignments only. Best, Chris
|
> For example, you can select the instVar name (text) and use "References to it (N)" off the menu (or hot-key) to show all references to an instVar that way. > It would be easy to add an additional menu entry for assignments only. Hi Chris, good idea! I sent two commits regarding your proposal to the inbox.
However, I do not think that Ralphs original request got redundant per this proposal. The text morph menu is very horrible long, even if you can type to search, and there few more hotkeys free to use. In my opinion, the
button row is exactly appropriate in order to provide a reduced set of operations to the overwhelmed user (such as me). I keep desiring a split button as mentioned below, maybe this dream can become reality someday ... :-)
Best,
Christoph
Von: Squeak-dev <[hidden email]> im Auftrag von Chris Muller <[hidden email]>
Gesendet: Montag, 20. Januar 2020 23:55:58 An: The general-purpose Squeak developers list Cc: [hidden email] Betreff: Re: [squeak-dev] variable assignments button On Mon, Jan 20, 2020 at 12:51 PM Thiede, Christoph <[hidden email]> wrote:
We have an unpleasant mix of a "command-oriented" UI, where you select a command (instead of an object) and THEN the system prompts you, modally, for the object to apply that command to -- we should be moving AWAY from this, not toward --
mixed along with with our "object-oriented" UI, where you select the object first, THEN the contextual command to apply to it (via button or menu or hot-key).
For example, you can select the instVar name (text) and use "References to it (N)" off the menu (or hot-key) to show all references to an instVar that way. It would be easy to add an additional menu entry for assignments only.
Best,
Chris
Carpe Squeak!
|
It wasn't really meant as a proposal as much as an "example" of how we do it with our object oriented UI. Since that is already available on the Class menu (also as Cmd+a on that pane, which is how I usually access it), we will have to decide whether we want to lengthen the already-long text menu, as you alluded to below..
I think it's indicative of the complexity of software development and the power of the IDE to address it -- it needs a lot of functions and multiple ways of doing the same thing, resulting in a lot of buttons and menu items. Button row is subject to the same design balance between "too long", or fewer functions, too.
Maybe the button row could morph itself automatically into one of those based on size and number of truncated labels.. :) Another idea, ability to select which functions one wants at each place... :-o :) Best, Chris
|
Hi Chris,
In your previous message, you convinced me that it would be a better user experience to select the subject first and the operation second. This workflow is not supported by <cmd>a. But yes, the current text morph menu is way too long. Maybe we should clean
it up at some time (for example, by extracting all find/"* with it" items into one submenu ... just an idea).
> Maybe the button row could morph itself automatically into one of those based on size and number of truncated labels.. :) Another idea, ability to select which functions one wants at each place... :-o :)
Ah, that sounds a bit like MS (Office) Ribbons :) They are indeed a good example of how to keep a UI quite clear.
Free configurability of each menu and button bar is a cool thing, but when I think at Visual Studio, for example, there were so many command lists to be adjusted that I actually never managed to adjust any of them. Plus, this kind of modularity impair universally
comprehensible and reproducibly tutorials or screenshots.
Best,
Christoph
Von: Squeak-dev <[hidden email]> im Auftrag von Chris Muller <[hidden email]>
Gesendet: Mittwoch, 22. Januar 2020 23:37:28 An: The general-purpose Squeak developers list Cc: [hidden email]; [hidden email] Betreff: Re: [squeak-dev] variable assignments button
It wasn't really meant as a proposal as much as an "example" of how we do it with our object oriented UI. Since that is already available on the Class menu (also as Cmd+a on that pane, which is how I usually access it), we will have to decide whether
we want to lengthen the already-long text menu, as you alluded to below..
I think it's indicative of the complexity of software development and the power of the IDE to address it -- it needs a lot of functions and multiple ways of doing the same thing, resulting in a lot of buttons and menu items. Button row is subject to the
same design balance between "too long", or fewer functions, too.
Maybe the button row could morph itself automatically into one of those based on size and number of truncated labels.. :) Another idea, ability to select which functions one wants at each place... :-o :)
Best,
Chris
Carpe Squeak!
|
Great! :)
Very true. The MC Browser also forces me into the "operation first, subject second" workflow. I definitely prefer your Inbox submission for the workflow dimension, but..
.. yep. :) On small screens, some menus end up taller than the screen.
Also like what we did with button labels, shortening them to the first letter when their extent gets too small. I ended up liking that, and could imagine something similar with menus, wherever we currently put a separator break, ---------- , what if it could be a "grayed out" label for that section of menu items which would, whenever the World height was too small, collapse that section into into a cascading menu, and ungray the label..?
"Command lists?" It sounds like they buried it into some tab on a modal "Preferences" panel? The Squeak way is "live" configuration. Shift+red-click a menu item, you can edit it. Shift+blue-click it, and you can use the red halo to remove it, or the green-halo to tear it off as a button and place it anywhere, such as the DockingBar. We just need to make it _remember_ these actions, and put the removed ones under "more..." for retrieval. Squeak's live configuration is allows the user to do it without having to context-switch.
I hope you won't limit your imagination based on that. No, close your eyes and let it run wild, imagine the most amazing and intuitive UI ever (something like in Minority Report). Worry NOTHING about the implementation, ONLY the vision, as a user, and what you would want. THEN make the tutorials and screenshots about THAT! Maybe it'd even be a self-teaching, user-guiding UI, like in video games, so you wouldn't even need them. Have you noticed how many modern consumer products no longer come with owners manuals, just "quick start" cards? Integrated documentation seems to be a thing... :) Best, Chris |
> Also like what we did with button labels, shortening them to the first letter when their extent gets too small.
This is indeed an improvement in terms of design, but it does not actually help you to find the right button.
> wherever we currently put a separator break, ---------- , what if it could be a "grayed out" label for that section of menu items which would, whenever the World height was too small, collapse that section into into a cascading menu, and ungray the label..? Interesting idea :) I never struggled in a situation where a menu was too high, but in this case, it clearly sounds like an improvement to me. In order to give meaning names to these "automatical categories", we
would need to revise or current menu design. However personally, I absolutely favor type-to-search in case of any menu that has more than 6 items :).
> Shift+red-click a menu item, you can edit it. Shift+blue-click it, and you can use the red halo to remove it, or the green-halo to tear it off as a button and place it anywhere,
such as the DockingBar. We just need to make it _remember_ these actions, and put the removed ones under "more..." for retrieval. Squeak's live configuration is allows the user to do it without having to context-switch.
But users cannot change the default contents of any kind of menu permanently without modifying the underlying code.
> > Plus, this kind of modularity impair universally comprehensible and reproducibly tutorials or screenshots.
> I hope you won't limit your imagination based on that. No, close your eyes and let it run wild, imagine the most amazing and intuitive UI ever (something like in Minority Report). Worry NOTHING about the implementation, ONLY the vision, as a user,
and what you would want. THEN make the tutorials and screenshots about THAT!
Well, of course, you're absolutely right :-) Provided that we provide a convenient command search function for all of these commands.
> Have you noticed how many modern consumer products no longer come with owners manuals, just "quick start" cards? Integrated documentation seems to be a thing... :)
I come from a generation that never consults an owner manual for an application until physical coercion is applied :) Intuitivity first, always, ever, of course! That's the way I learned Squeak until now, so we are not on a bad path.
However, a quick start guide sounds interesting, too :) This would also be a nice project for Squeak: If the user opens the MCBrowser the first time, for example, a decent pop-up could lead him or her to the most popular few buttons of the dialog and guide
him or her how to make their first commit. Also see
TipOfTheDay for this more ideas.
Best,
Christoph
Von: Chris Muller <[hidden email]>
Gesendet: Donnerstag, 23. Januar 2020 22:36 Uhr An: Thiede, Christoph Cc: The general-purpose Squeak developers list; [hidden email] Betreff: Re: [squeak-dev] variable assignments button
Great! :)
Very true. The MC Browser also forces me into the "operation first, subject second" workflow. I definitely prefer your Inbox submission for the workflow dimension, but..
.. yep. :) On small screens, some menus end up taller than the screen.
Also like what we did with button labels, shortening them to the first letter when their extent gets too small. I ended up liking that, and could imagine something similar with menus, wherever we currently put a separator break, ---------- , what if it
could be a "grayed out" label for that section of menu items which would, whenever the World height was too small, collapse that section into into a cascading menu, and ungray the label..?
"Command lists?" It sounds like they buried it into some tab on a modal "Preferences" panel? The Squeak way is "live" configuration. Shift+red-click a menu item, you can edit it. Shift+blue-click it, and you can use the red halo to remove it, or the
green-halo to tear it off as a button and place it anywhere, such as the DockingBar. We just need to make it _remember_ these actions, and put the removed ones under "more..." for retrieval. Squeak's live configuration is allows the user to do it without
having to context-switch.
I hope you won't limit your imagination based on that. No, close your eyes and let it run wild, imagine the most amazing and intuitive UI ever (something like in Minority Report). Worry NOTHING about the implementation, ONLY the vision, as a user, and
what you would want. THEN make the tutorials and screenshots about THAT! Maybe it'd even be a self-teaching, user-guiding UI, like in video games, so you wouldn't even need them. Have you noticed how many modern consumer products no longer come with owners
manuals, just "quick start" cards? Integrated documentation seems to be a thing... :)
Best,
Chris
Carpe Squeak!
|
On Fri, Jan 24, 2020 at 3:29 PM Thiede, Christoph <[hidden email]> wrote:
For example of menu overflowing vertical space: WorldMenu/ new morph.../ from alphabetical list/ Many of the sub menus there will overflow vertical space, unless you have a very tall screen. Best, Karl
|
In reply to this post by Christoph Thiede
Am Fr., 24. Jan. 2020 um 15:29 Uhr schrieb Thiede, Christoph <[hidden email]>:
Don't forget that you probably received the initial live introduction lecture at HPI ;-) I still believe that all those
Smalltalk
tools with unlabeled lists are mystical at first without some kind of introduction, either by a peer or by a book/manual/tutorial/... |
> Don't forget that you probably received the initial live introduction lecture at HPI ;-)
> I still believe that all those Smalltalk tools with unlabeled lists are mystical at first without some kind of introduction, either by a peer or by a book/manual/tutorial/...
Well, that's correct :-)
Squeak by Example may be a good point to start, but I would not start myself by reading a book.
Do we have some interactive tutorial stuff? Something like https://amber-lang.net/learn.html, just for Squeak and much larger.
It is good that Nicola makes some YouTube content for Squeak, we could really need more of this stuff.
@Karl
> For example of menu overflowing vertical space: WorldMenu/ new morph.../ from alphabetical list/
Ouch, this is indeed ugly. Maybe MenuMorph should be a ScrollPane?
Best,
Christoph
Von: Squeak-dev <[hidden email]> im Auftrag von Jakob Reschke <[hidden email]>
Gesendet: Freitag, 24. Januar 2020 21:39:19 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] variable assignments button Am Fr., 24. Jan. 2020 um 15:29 Uhr schrieb Thiede, Christoph <[hidden email]>:
Don't forget that you probably received the initial live introduction lecture at HPI ;-)
I still believe that all those Smalltalk tools with unlabeled lists are mystical at first without some kind of introduction, either by a peer or by a book/manual/tutorial/...
Carpe Squeak!
|
> On 2020-01-25, at 5:29 AM, Thiede, Christoph <[hidden email]> wrote: > > Do we have some interactive tutorial stuff? Something like https://amber-lang.net/learn.html, just for Squeak and much larger. There have been various attempts at a tutorial/teaching thread on the swiki. Look at http://wiki.squeak.org/squeak/178 Do note how many are now dead links - including one that was supposed to be on the main squeak.org site. One very good starting point (that still needs work and updating of the screenshots) is http://wiki.squeak.org/squeak/4 "Basic Squeak Development Tools" Creating a good teaching resource is a lot of hard work. We need to teach the fundamentals of the language, the use of the tools, good practise in programming, handling the source & package management, user interface design and implementation... in other words a substantial part of a university degree. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim 'Profanity: the universal programming language' |
In reply to this post by Christoph Thiede
Yes, I think menus should become scroll-able if they overflow vertical space. I'm not sure how much work it would be to implement this though... Best, Karl On Sat, Jan 25, 2020 at 2:29 PM Thiede, Christoph <[hidden email]> wrote:
|
> On 2020-01-25, at 11:48 AM, karl ramberg <[hidden email]> wrote: > > Yes, I think menus should become scroll-able if they overflow vertical space. > I'm not sure how much work it would be to implement this though... Absolutely. I fudged that for NuScratch by making a menu split and have 'more...' last entry if it would take up more than (I think) 75% of display height. OK for a quick solution but a proper scrollable menu would be superior. Raspbian (the Raspberry PI OS) provides menus that have an up arrow at the top and a down at the bottom (not much use the other way round!) which work... meh. RISC OS menus gain a perfectly normal scroll bar if they need it. Much better. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim A bug in the code is worth two in the documentation. |
In reply to this post by timrowledge
There are also Smalltalk4U videos about Squeak 4.3 tim Rowledge <[hidden email]> schrieb am Sa., 25. Jan. 2020, 19:58:
|
Thanks for all the links! I think especially the videos are a very good source for beginners. Should we add a link to them into http://wiki.squeak.org/squeak/178?
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von Jakob Reschke <[hidden email]>
Gesendet: Sonntag, 26. Januar 2020 11:17:50 An: The general-purpose Squeak developers list Betreff: [squeak-dev] Learning material (was: variable assignments button) There are also Smalltalk4U videos about Squeak 4.3
tim Rowledge <[hidden email]> schrieb am Sa., 25. Jan. 2020, 19:58:
Carpe Squeak!
|
Free forum by Nabble | Edit this page |