fityk icon indicating copy to clipboard operation
fityk copied to clipboard

many, many suggestions for improving Fityk

Open ghost opened this issue 1 year ago • 1 comments

Hi, I have finished exploring fityk, which I find interesting and powerful and thus wish it to become even better over time. Since I have so many suggestions, I hesitated to post them all as individual "issues". (But let me know if I better do so). They are numbered in random order, as they occured to me.

GUI

  1. In main plot window, show by default (i.e, after installation) the y axis and the minor ticks too. Otherwise, the numbers there with '-' in front look like negative numbers.
  2. Main plot window, with y axis ON, the axis looks different at start (nicely tucked against left window margin) vs after press Ctrl-A (displaced too much from left window margin. Please make it always be as on start.
  3. the tooltip that appears when you rest the mouse pointer in GUI over an icon: keep it till user moves the mouse. Else, you don't manage to read it all. For example in right-down corner, status bar, where it's explained mouse buttons in Normal mode: a lot to read (and absorb), and it disappears too fast.
  4. The respective tooltips need explanation that to zoom, or activate/deactivate, you need drag (not just click, as some might understand with current instructions). It's not trivial, b/c in other programs, just clicking can zoom. In the tooltip for normal mode, status bar, could just the 2nd sentence from "left mouse button: zoom" to "left mouse button (drag): zoom". Similarly in tooltip in status bar for (de)activating.
  5. The tooltip at hovering/resting pointer over an icon should better appear in a single place: the little popup window. Not in the status bar , left-down side, b/c users won't know at first about it and also it's easier to read it in a single place. I completely missed those secondary tips in my first sessions with Fityk (and these tooltips are most important at the beginning).
  6. Automatically save configuration of the GUI (visible windows, colors, etc.) for next session, instead of having to use GUI ‣ Save current config.
  7. Harmonize the entries for Data menu and toolbar icons for Loading data. Currently they have slightly different / non-matching names/tooltips. IMO the tooltips for the icons in tool bar are clearer, so better to change the 2 menu entries to match them. Also, add keyboard shortcut [ctrl-M] to the tooltip of "Load file (custom)"
  8. Automatically remember the Session settings for next start (things like user dir..). Or offer a tick box in Settings to remember them all for next start.
  9. Give a tickable option to use the auxiliary windows to plot datasets too (just for plotting, not necessarily for fitting as in main pane).
  10. Allow more than 2 auxiliary plot windows (especially given the prev. request)
  11. in right-click menu for data sets in right side pane, allow: accessing 'table' deleting maybe others too
  12. Allow permanent open display of the Table for a selected dataset. Could be placed, wiht an option in GUI menu for showing, to the right of the current side pane Why: I often need to see the numerical effect every time I do a little transformation. It would same me time printing a few rows every time.
  13. The slider adjustors in side pane are sometimes too sensitive, and other times too insensitive; ex, the center param for Gaussian,for dataset nacl01.dat main peak, when try to adjust, it moves the center too much. While when trying to change params of quadratic function (with initial params 1,2,3), it changes them too slowly (need drag them alot to see significant changes). One possible solution would be to use the variable domain (bounds) there, so that the slider would be adjusted only within those limits, and without recoiling back when dragging it , as it does at present. If the domain is not set, then use the bounds specified with "domain_percent" option (default +- 30%).
  14. The tool-tip in tool "auto-add" good to mention 'guess', ex "auto-add (guess)"
  15. Allow individual setting of plot properties for different datasets. (point size, line or not...). Currently, if say I tick box "line", then it's affecting all datasets, even if I selected only one of them when doing that.

CLI and Fityk language (DSL)

  1. auto bracket closing on command line, if not hard implement
  2. Allow to refer to dataset using @title (give error if one defines a not unique title)
  3. When deleting a function that was named automatically %_1, then creating (say, with guess) another one, why doesn't Fityk reuse the name %_1, instead of using %_2 now? To be consistent with how it works when deleting and creating datasets.
  4. Remove the requirement for {} for any expression unless it needs to preceded by ~ or need to extract value from a variable-expression. There's no good reason to not allow $x0 = x[0] or = max2(2,3)
  5. Remove the limitation of functions possible for defining compound variables, as stated in https://fityk.nieto.pl/model.html#variables
  6. The command line feedback for "guess Typename" (ex, guess Gaussian), needs to say not only that a function has been created,but also that it's been added to the model F
  7. When creating a function with function types that have default parameter values, allow not to have to specify the parameter names for the ones that are not omitted. Could implement a syntax based on extra commas to mean the default parameter. if MyType(a,b,c=3,d) then allow %f=MyType(1,2,,5) if MyType(a,b,c,d=3) then allow %f=MyType(1,2,3) or MyType(1,2,3,) if MyType(a=3,b,c,d) then allow %f=MyType(,1,2,3)
  8. If shallow copy is allowed for models, then why not for functions too? =-> %_1=%_2 Syntax error: at 7: expected CamelCaseName or 'copy' instead of '%_2'
  9. REmove need to type "p:rint" ; just typing the expression should suffice (like in many other scripting languages), with no other major lang syntax changes necessary for this.
  10. Change name of info peaks, info peaks_err to something about functions, b/c fityk is not just for fitting peaks
  11. It's hard to remember when to use print and when info. It should be possible to always use print, with some change of syntax of arguments that now go to info. "info version" => "print version" "info set [option]" could be replaced by "print set [option]" or "print set[.option]" " info $a" => "print $a.def" for the definition, "print $a.all" for both def. and value, "print $a" for just value
  12. Allow division in dataset tranf.: =-> @+=1/2*@0 Error: op DIV is not allowed in dataset transformations.
  13. Change name of the aggregate f. argmin() and argmax(), b/c Hard to remember that arg there stands for the x value. Maybe: "xmin", "xofmin" (I think latter is clearer, not to confuse with limits min/max of x)
  14. ( Long term/ gradual ) Extend fityk DSL to be able to do most what one would recurr to Lua for. (basic string processing with interpolation of vars, loops, ...). It's tiresome to have to learn 2 langs. If such extension done, then from what I can tell, it's going to be much cleaner to write the scripts currently done with Lua, b/c one would not have to call F:method(...) so often Alternatively , fityk without DSL, but directly in (a subset of) Lua?..
  15. Allow access to dataslot/dataset number (n in @n), can be useful when doing @*: command_that_needs_n maybe as dataslot or dataslot_num or @.d
  16. IMHO, this is de-facto a bug, even though its documentation at the end of https://fityk.nieto.pl/script.html#fityk-dsl makes it de-jure not a bug: =-> $a=4; print $a # print gives unexpected error Error: undefined variable: $a because ";" is supposed to mean the preceding command is already executed before next command I think ";" should be disallowed alltogether, until this is fixed.
  17. Make commands for saving session/state agree in GUI (session/save session) vs CLI (info state > filename), b/c it's confusing.
  18. Because of the exception that "print" expects 'filename' in quotes at redirection, better require always so (even for info and debug). At least until "print" will no longer have this exception. The less exceptions the user has to learn, the better.

Documentation

  1. What is the Auxiliary plot window showing immediately after loading a data set? For example, after loading 'nacl01.dat', it shows peaks that mirror the peaks in the main plot window, except that the lines look smooth as if points are connected/interpolated. The doc https://fityk.nieto.pl/getstarted.html says " By default, the [helper] plot shows the difference between the data and the model." but what is the model here? Right-click shows "Diff" selected. But changing the function type in menu/Functions has no effect.
  2. At classification of variables: IMO it would be clearer to move the constant variables out of the compound variables type. Because the compound type are really special, holding a dependency on other, variables . And either say:
    • there are 3 types vars,
    • or (better) move the constant type into the simple type, b/c it's ... not compound type :) . And say 2 subtypes of simple vars: adjustable/fittable - by the fitting process, or not fittable/ constant. Constant vars are like usual vars in other programming langs (except they can only store floating point numbers)

Website

  1. I almost completely missed the search box on the manual page. Please make it more visible, maybe also place it more at top/right side, it's very useful.

ghost avatar Feb 17 '23 06:02 ghost