Welcome Guest! To enable all features please Login. New Registrations are disabled.

Notification

Icon
Error

Login


Options
Go to last post Go to first unread
Offline dg1727  
#1 Posted : 22 May 2010 21:28:01(UTC)
dg1727


Rank: Member

Groups: Registered
Joined: 11/05/2010(UTC)
Posts: 15
Man

Hello,

Here are some feature suggestions for the development team to think about adding someday. As I write this, the current program version is 0.88:

1. A window splitter (horizontal bar) should be added. This would be very helpful in changing a constant definition at the top of a worksheet and observing its effect on a result at the bottom of the worksheet.

2. Something like the following should be considered: When a placeholder has the text-entry focus, double-clicking a variable or function name elsewhere on the sheet fills that name into the placeholder. I use the equivalent feature constantly in spreadsheets. I suggest "double-clicking" instead of "single-clicking" so the user can single-click to move the text-entry focus quickly to a different expression, leaving the placeholder as a placeholder for the time being.

3. Have a way to rename all instances of a variable. Maybe a menu option called Edit > Rename Variable... which brings up a dialog with From and To text fields. The From is a non-editable combo box which lists variables that exist in the document. The contents of the To default to whatever the user selects in the From. It would be even better if this dialog could be invoked by right-clicking a variable name on the worksheet; the From box would default to this variable name. If the To name matches an existing variable (this would cause the From and To variables to be merged), then a warning should be shown, giving the user an opportunity to cancel.

4. In this suggestion, I will abbreviate Dynamic Assistance as DA.

a.

Presently, if the user enters
Code:
x:3*'

..., DA includes items that are not units. I think only units should be shown in DA once the user types an apostrophe at the beginning of an identifier (identifier = (variable | function | constant | unit)).

Presently, the user can press BACKSPACE to cancel the apostrophe ('Wink; this is fine, and should result in non-unit items being added back into the DA list.

b.

Presently, if the user begins a math region by typing
Code:
x:3*k

..., DA shows various units, but if the user finishes typing the name of a unit exactly (for example, "kg" ) and presses ENTER, then enters
Code:
x=

..., the tooltip says "kg - not defined." This can confuse new users who thought that by typing "kg," they were going to get kilograms. (The user may have found it quicker to type "kg" than to navigate the DA menu.) Notes on a possible solution are as follows:

Presently, DA shows a tooltip for whatever entry is highlighted in the DA list. Maybe a 2nd tooltip could also be shown (it could be below the DA list, or wherever there is room), which always says something like
Quote:
Type ' to enter a unit.

If the user doesn't press ' anywhere in the identifier, then, as today, the identifier will not be treated as a unit name.

Now suppose the user presses '. I think there are 3 options regarding this situation. From least complex to most complex:


* Disallow variable names which contain apostrophes. If an ' is entered, it is moved to the beginning of the identifier (and the display is updated accordingly: the ' is no longer explicitly shown, and the identifier is redrawn in blue italics).


* Allow apostrophes ("prime" ) only at the end of variable names: kg', kg'', etc., but not k'g. (The formatting code in SMath Studio should probably support k(subscript)g(/subscript)' that might be made possible by the pending feature request for "explicit subscripts" (Mathcad "." key). EDIT: By "explicit subscripts" I meant "literal subscripts" as mentioned in another forum topic. That is, the (/subscript) is forced to be part of the formatting if the user enters k(subscript)g'. The "prime" applies to the k, not to the g.) In this option, the 2nd tooltip could read similar to
Quote:
Type ' to enter a unit or a "prime" symbol.
As soon as the user types an ', DA could be replaced with a list that looks like DA, but has only 2 choices: Unit and Non-unit. A selection of "Unit" causes the ' to be moved to the beginning of the identifier; "Non-unit" leaves the ' in place and ends entry of the identifier; and if neither is selected, then the identifier is taken to be a unit name if (without the apostrophe) it matches an existing unit; or if it doesn't match, it's taken as a "primed" non-unit. When an old worksheet is opened which has embedded ' in identifier, the apostrophe could be converted to _, which would be changed to _1_, _2_, etc. as necessary to keep from merging 2 variables into one. (Example: If there were a'b and a_b, then a'b would be renamed to a_1_b.)

* Allow variable names which contain apostrophes ("prime" ). I think that this could be done, but would make the identifier-entry code in SMath Studio complicated. I have a possible algorithm (in English Good ) for this; I can post this algorithm if someone REALLY thinks this 3rd option might be preferable.


I like the 2nd option the best: Having an identifier ending in "prime" is common in non-computerized math, but most purposes for putting an apostrophe in the middle of an identifier can be satisfied with underscores or "explicit subscripts." EDIT: By "explicit subscripts" I meant "literal subscripts."

5. line() doesn't have an example view in the Insert > Function... dialog (Programming category), but it should.

6. New users, especially those who don't have access to Mathcad, would benefit from a category in the Insert > Function... dialog called "Graphically formatted". This category would include the functions whose formatting is changed from the all-text representation as the user enters them into a worksheet.

Examples: det() diff() el() int() line() log() mat() nthroot() product() range() sqrt() sum() sys() while() (and for() because of the "is a member of" symbol in for(3)).

The reason for this category is to help users who wonder, "How do I put that function into a worksheet by using the keyboard?"

7. Insert > Function... should have a "Misc." category which includes all functions that are otherwise listed only in "All" or the suggested "Graphically formatted" category. This is so that users who want, say, mod(), which is not in any of the other categories, but can't remember what it is called, don't have to scroll through the "All" list to find it. The suggested category would also help people who are learning to use the program by experimenting with the GUI rather than by reading a tutorial. (Some excellent tutorials about SMath Studio have been written, but there will always be people who don't read the tutorial for various reasons.)

8. In editing a text region, SHIFT-HOME and SHIFT-END should perform "highlight to beginning" and "highlight to end".

9. When the user is editing a line() function, the cursor-up and cursor-down keys should move to the previous and next arguments of line() instead of the previous or next region on the worksheet, although the cursor-up key from the first argument can move out of the line() function, and similarly for cursor-down from the last argument.



10. Option(s) should be considered for the following (I will abbreviate Dynamic Assistance as DA):

a. When DA first appears during the editing of a given identifier, nothing in the DA menu should be highlighted. When nothing is highlighted in the DA menu, ENTER (as it does today) completes entry of the identifier as whatever the user has typed.

b. Once the user presses the cursor-up or cursor-down key while the DA menu is visible, it should be ENTER instead of CTRL-ENTER that selects the highlighted identifier. The cursor key indicates that the user is interested in DA, so the scope of ENTER should reflect this interest.

Reason for these DA suggestions: I think users will tend to press ENTER to select whatever is highlighted, but in SMath Studio the user needs to press CTRL-ENTER. I believe Web browsers, for instance, tend to use ENTER rather than CTRL-ENTER for address-bar autocompletion, which looks similar to DA.

c. When the DA menu first opens, cursor-down or TAB should just highlight the top entry in the menu, and cursor-up should act as it does today (highlight the previous menu entry).

d. In the DA menu, TAB should act as ENTER is proposed to do (accept the highlighted entry). So, from the moment the DA menu first appears, it will require TAB TAB to accept the default DA autocompletion (today, only one TAB is required); but I think it is worth it to keep the user from being surprised that ENTER moves off the math region instead of selects the highlighted DA autocompletion. (Item (a) is done to keep ENTER from surprising the user, and is also the reason two presses of TAB are required to accept the default.)

e. When there is a highlight bar in the DA menu, SHIFT-TAB or BACKSPACE or cursor-left should remove the highlight bar from the menu (but not remove the menu) and return the text-editing focus to the expression being edited.

f. When there is a highlight bar in the DA menu, pressing a letter key will, as it does today, add to the identifier being entered. This may, as it does today, cause the highlight bar to disappear from the DA menu (if the new identifier-in-progress doesn't match the beginning of any item in the DA list).

g. I believe the above items mean that CTRL-ENTER does not need to be used for any part of Dynamic Assistance anymore. I think this is OK, since some users may not "intuitively" associate CTRL-ENTER with anything. (CTRL-ENTER can still be allowed for compatibility.)



11. Matrices should be shown in square brackets, rather than parentheses. I believe Mathcad uses parentheses, but I find this confusing.

12. I wonder if it would be possible to add a "%" unit which simply adjusts the number by a factor of 100. For example, if a calculation result is 0.6321, changing the unit to % would format the result as 63.21%.

13. Functions such as for() and importData() that have different forms with different numbers of arguments (overloading) should have a separate description for each form. This will help each description be more concise. I think it is OK that some text will be duplicated between the different descriptions for each function.

14. An option for the following should be considered: Prohibit redefining reserved words, or at least show a warning (a dialog?) if the user attempts redefining a reserved word. This would change the operation described on the wiki.

15. The function names "arccosec" and "arcsec" do not seem to depend on Tools > Options... > Interface > "Functions style," but "acos"(World)/"arccos"(Europe) and "acot"(World)/"arcctg"(Europe) do. Is this intentional, or should "arccosec" and "arcsec" be updated to depend on "Functions style?"

16. Ideally, the arguments separators in Insert > Function... should be localized.

17. Customarily, the View submenu would have options to turn off the toolbar and the status bar. This would require all items in the toolbar to be accessible via the menu; the font size, font color, background color, region border, align horizontally, and align vertically buttons would be duplicated in a Format submenu which would be between Insert and Calculation.

18. In theory, if the user Undoes all edits that were done since the last time the file was saved, the file should be marked as unmodified.

Edited by user 27 May 2010 15:25:51(UTC)  | Reason: Clarified that by "explicit subscript" I meant "literal subscript"

Wanna join the discussion?! Login to your SMath Studio Forum forum account. New Registrations are disabled.

Offline Andrey Ivashov  
#2 Posted : 23 May 2010 05:37:55(UTC)
Andrey Ivashov


Rank: Administration

Groups: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Joined: 11/07/2008(UTC)
Posts: 1,616
Man
Russian Federation

Was thanked: 1978 time(s) in 666 post(s)
Hello, dg1727!

Thanks for this list of thoughts about how to improve SMath Studio! Most of them are really what I should implement. And I will...

If it's OK, I'll not comment all the items, but in addition here is some other things from me:
  • Regarding 10.g: I think that Ctrl+Enter can still be useful if the rule will be added - if DA menu is shown but have no selected item then Ctrl key will select (while pressed only) the most similar menu entry (i.e. top visible entry). So, Ctrl+Enter will have functionality identical with current and will not conflict with all your rules (if menu item is selected, then Ctrl+Enter will work as Enter).
  • Regarding 3: I also hope to implement "Go to definition" feature into the context menu when variable is highlighted.


Best regards, Andrey Ivashov.
Offline dg1727  
#3 Posted : 26 May 2010 03:44:08(UTC)
dg1727


Rank: Member

Groups: Registered
Joined: 11/05/2010(UTC)
Posts: 15
Man

Andrey,

I think your 2 items are great ideas. Happy
Offline sx70  
#4 Posted : 10 September 2011 18:27:37(UTC)
sx70

Rank: Newbie

Groups: Registered
Joined: 10/09/2011(UTC)
Posts: 2
Location: US - IL

I also want to thank Andrey for a wonderful piece of work. I just discovered SMath a few days ago and am eagerly looking forward to how it will develop. I just want to second the suggestion for a window splitter to enable changes to a variable and not having to scroll to the bottom of a long worksheet. Alternate methods that I use in Mathcad are to use the global definition operator to create functions beneath where the results are displayed. I have also used Mathcads ability to hide regions to reduce the amount of scrolling. Addition of any one of those features would be welcome.
Offline omorr  
#5 Posted : 10 September 2011 19:08:59(UTC)
omorr


Rank: Administration

Groups: Registered, Advanced Member
Joined: 23/06/2009(UTC)
Posts: 1,740
Man
Serbia

Was thanked: 318 time(s) in 268 post(s)
Hello,

You actually have all of these. SMtah variables can be regarded as global in the sense of Mathcad.
For instance a and b in this example are not defined above the function definition but below
f(x)←x+a+b
a←5
b←6
f(10)=21

In Mathcad, variables a and b have to be definad as global in order this example to work. Besides, Mathcad will even complain about function definition, SMath will not etc. IMHO, having global variables in Mathcad can be a cause of problems. I always try to avoid them.

And you also have Area regions Insert|Aera like in Mathcad and you can hide a portion of woeksheet.

Regards,
Radovan

Edited by user 10 September 2011 21:33:33(UTC)  | Reason: Not specified

When Sisyphus climbed to the top of a hill, they said: "Wrong boulder!"
Offline sx70  
#6 Posted : 13 September 2011 03:33:37(UTC)
sx70

Rank: Newbie

Groups: Registered
Joined: 10/09/2011(UTC)
Posts: 2
Location: US - IL

Radovan -
Thanks for pointing this out to me. I was using the 0.89 stable release and hadn't looked at 0.89.8 yet, but your comments prompted me to download that.

Thanks again
Offline omorr  
#7 Posted : 13 September 2011 04:06:22(UTC)
omorr


Rank: Administration

Groups: Registered, Advanced Member
Joined: 23/06/2009(UTC)
Posts: 1,740
Man
Serbia

Was thanked: 318 time(s) in 268 post(s)
You are welcome Good

Just be patient for a while (I hope for not so long) and a new SMath version will be on its way.

Regards,
Radovan
When Sisyphus climbed to the top of a hill, they said: "Wrong boulder!"
Users browsing this topic
Guest (2)
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.