What Croquet Needs and Why
Last updated at 1:06 am UTC on 17 January 2006
My suggested improvements for Croquet.
Also: Needs from Squeak for the academic community listed on the SqueakFest Swiki.
In the same vein as "continuous quality improvement", I'd recommend that you have a built-in, commonly shared over the Internet, 2D Croquet portal where testers can leave their bug-reports, suggestions, and/or impressions. Nothing complex.
The list of "how do I do..." type comments will render many insights into others' cognitive workings including how peoples' reasonings differ from each other. The resulting record will provide good raw material for analysis to put into research papers as well as Croquet improvements. Just make sure the portal also invites and encourages the user to also explain at minimum:
- why they want to do it,
- why someone else might want to do the same thing (forcing more thoughtful questions to reduce useless or thoughtless questions),
- what they tried before, and
- how do they imagine it could be done more simply and/or more easily explained/shown to another person.
From a user's perspective, I believe some rules of thumb for the interface that the user manipulates to create user-content for the education of others or the education of oneself:
- "Simplicity and understandability" will yield more reusability than "inheritance".
- Next in importance is "representing to the user how the content's relevance to her or him".
- After that in importance is "providing the tools so the user can create labels as handles for easily manipulating what they care about".
- Next is "reliability and reproducibility".
- Then it's more complex "flexibility, extensibility, or abstraction of structure".
- Perhaps last, a representation of what is expected of the user/student & their content by others.
- Don't forget to make Croquet "viral" by making it as easy as possible for all users to share the resulting "product of their excitement" with their friends/associates.
I also imagine that the avatar should be able to carry that tester's_results_portal around for spur_of_the_moment notes or even a diary. (Should one call it an "avatar pocket PDA"?) This also might encourage others to help Croquet be more self documenting by lowering the "documentation author" bar.
Some time later, maybe, allow for the attachment of camera-bookmarks, screenshots, dynamic-linked class name, or a sample collection of whatever is suspect so that effects of a problem are preserved for further analysis in the submissions to the "tester's results" portal.
The open source Blender3D project has been improving its 3D content development environment's GUI for extreme workflow and approachability for beginners.
Your can read a summary of their efforts here:
They reference Jef Raskin's UI theorems:
Many of their problems & solutions should match Croquet's GUI needs.
- Non modality. Usage of 'modes' in software is highly discouraged. It forces a user to change his interaction methods and spend a lot of extra time of working with the UI itself.
- Make non-blocking, always functioning interfaces
- Undo is essential at all levels, to get rid of error messages
- Define and re-use the same core set of elementary operations for many purposes, preferably with hotkeys
I have been contemplating (for a couple years) how a GUI for children, teachers, and parents would look and function. I too share Alan's "anticipation of a true Omniuser scripting system someday" as he mentioned on the squeak-dev list last May http://lists.squeakfoundation.org/pipermail/squeak-dev/2003-May/057781.html.
I've been contemplating how to simplify navigation of the entire e-toy workspace world. I've also been contemplating how to address Alan's 3 points where e-toys get awkward:
(a) "building expressions ... with more than the simplest linear concatenations."
(b) "the constant changing back and forth from one viewer to another"
(c) "the difficulties of making changes in tile-based scripts."
This page lists the cognitive/social principles we're all trying to address while still creating a rich, robust, and enjoyable learning/play environment for our children.
The solution I have in mind draws from
I know several of these are already incorporated into Tweak & Jive. What I suggest is that one could/should combine the least common denominator of all these into one consistent, fast, robust metaphor and user experience for manipulating expressions and text. (2D & 3D graphics would be handled as on a different, full-screen, alpha-blended view plain.) In a phrase, combine all the AlignmentMorphs of all the morphs visible in the World into one single set of nested Alignment Morphs. This set of AlignmentMorphs would adjust to what the user wants, needs, requests, to see. This would be just the visible part of a mental-map/mental-metaphor of an all encompassing (mythical) HierarchicalCollapsibleAlignmentMorph.
This overarching arrangement would simplify how a student, teacher, or parent searches for, and references, any content in the e-toy (and even Squeak) application's world/environment.
- Anything they are looking for is either above, below, or within where they are at.
- Like a spreadsheet cell, morphs or tiles would contain data or a reference to data.
- Sets of cells would/could be giving names as Morphs and Alignment Morphs can.
- Every cell that is a nested AlignmentMorph can be expanded in place to show details or summarized to hide the details.
- Like Squeak classes/morphs, each cell also has its own menu/list of methods that operate on it and its subAlignmentMorphs and menu/list of ways it and its subAlignmentMorphs can be displayed.
Cognitive & Social Principles
- A vast majority of beginning users are sequential thinkers, vs. linear or matrix (directed graph) thinkers.
- Notice how those who use an Internet Browser:
- Use the Back button more often than the Page's Navigation menus.
- Use the Page's Navigation menus more often than the Forward button.
- Use the Forward button more often than the History List.
- Use the History List more often than Opening a Link in a New Browser window.
- Toggle between full screen Browser Windows rather than use Tabbed Browser Windows.
- Use Tabbed Browser windows rather than Browser Windows Tiled on a screen.
- Use Tiled Browser Windows rather than overlapping them like pages on a desktop partially obscuring each other.
- Use Search after most of the above fail to return results after about 10 tries.
- Keyboard navigation and control is as important as or more important than mouse navigation and control.
- Most Web page users do not scroll more that one page down from the top.
- A user must be able to find what they want, when they want it in the fewest possible steps and with little or no missteps.
- There is a rough principle of 7 ± 2 for a limit to a user's short term memory.
- Users habituate or "chunk" their frequently repeated actions. It's hard to break those habits.
- Screens, windows, button, keyboards, cursors, mouse buttons, and mouse pointers that switch modes, especially with minimal visible indications of the new mode, place an enormous burden on the memory of the user.
- Modal dialog boxes do not behave like a piece of paper on a desktop.
- Dragging and dropping require careful placement of both the source and the destination of the object being moved before the actual transaction can take place.
- Attention Management - While learning can be enhanced by undirected exploring, it can be hindered by distractions. Sometimes the time allowed for one to explore a domain or learn a concept is limited by external factors. Squeak/Croquet should contain tools that give the student/teacher/user controls to prioritize what is important to view in the immediate future. This includes both what is important to view in order of time and order of location on the screen. This would be in addition to encouraging undirected exploration (oxymoron ?).
- Cells are known to have properties just as classes. The cell/class properties can be pivoted into view when the non-expert needs them and are otherwise collapsed from the view when not needed. This also implies the importance of the Outliner as a view of the same data.
- Just as the natural Smalltalk data structure for collecting data the collection class hierarchy of list classes, the natural display structure of the spreadsheet is the list. This also shows how lists help preview the debugging with Unit Tests.
- The visual grid for data entry can allow the non-expert to create a visual list of content before assigning the list to a specific class thereby inheriting the methods to work on the list.
- A spreadsheet can syntactically parse and highlight source code just like Squeak's "tile" view in the System Browser, each tile now being a cell in the spreadsheet. Notice how Squeak's "tile" view in the System Browser preserves the hierarchical nature of the data.
- I suggest that users of PC GUI's functionality suggest three distinct modes of display use. An ideal user interface could have two or more full screen panes to represent the difference between text-only-pane information and the exploring/feedback-graphical-pane (similar to how Squeak projects are each a full screen pane). I'd allow the two panes to interact with each other, including having a whole in one plane to reveal specific content in the other, alpha blending, and sharing links to the same content. The insertion point would be unique to either one pane or the other while command keys apply to both. One can have pre-defined templates that reveal part of a text pane grid superimposed over the graphical pane such as how game developers make a heads-up-display (HUD) superimposed over the 2D or 3D graphical scene. They would share the same keyboard input. This takes advantage of TeX type functionality.
- Text doesn't shrink very well on a CRT, and even worse on LCD, for rapid visual recognition due to fixed pixel size. Also bright colors and complex patterns have a detrimental effect. Therefore, almost all text should be kept on the plane displayed on the surface of the display. This should have no z-buffer. Use grid placement such as web pages to separate and group content. Since the keyboard is the quickest content creation device, this first, display-surface plane would mostly function for searching, grouping, prioritizing, content creation and some establishing relationships between content.
- This could be extended by adding a third 3D pane for simulations and storytelling about a process.
- I’d abandon the common row/column ($AC$12) naming convention of spreadsheets for a new one similar to named cell ranges.
- The advantages such a grid format has over the window layers that Morphic provides is
- the reduction of occlusion
- the sense that whatever one needs to find is either above or below the current focus
- one doesn't need to bother about where a value appears and what it looks like if that degree of fiddling is not needed
- like outlines, grids can be collapsed to only show a row with just the view's name or collection's name. Morphs are more sensitive to where the minimized title bar can be found and what will be covered when brought into view
- outlining can easily be added to the grid model
- as more fields are created rows can be added or filters applied by "filling in the blank" or inserting a column/row; contrasting the exponentially increasing time to adjust eToy-tiles/connected-graphs/connectors or add more pages to make more white space
- Graphics are always aligned by a grid of Cartesian coordinates as well.
- Hiding links of grid to remove "bars of a jail" feeling.
- Music scales on grid. How would one represent music theory?
- Midi composition & Video editing is done on grids.
- New rows below appended below all prior content build on and easily link to and reference back up to prior content cells above.
- Goals of the environment should be included as a part of the environment.