GSoC/2020/StatusReports/NikitaSirgienko

From KDE Community Wiki
< GSoC‎ | 2020‎ | StatusReports
Revision as of 11:10, 27 August 2020 by Nikita Sirgienko (talk | contribs)

Extend the usability and feature set of Cantor

Cantor is a KDE application providing a graphical interface to different open-source computer algebra systems and programming languages, like Octave, Maxima, Julia, Python etc. The main idea of this application is to provide one single, common and user-friendly interface for different systems instead of providing different GUIs for different systems. The details specific to the different languages are transparent to the end-user and are handled internally in the language specific parts of Cantor’s code.

Though the code base of Cantor is already in quite good shape, there is still room for improvements with respect to the missing features, user experience and functional issues. Given the existence of similar open-source applications like wxMaxima, Jupyter, Octave GUI but also commercial like Mathematica, it is important to address all issues and to add missing features to become competitive with other applications or even be ahead of them.

The idea of this project is not to implement one single and big "killer feature" but to address several smaller and bigger open and outstanding topics in Cantor.

Project mentor: Alexander Semke

Project log

Collapse/uncollapse all entries and remove all entries results

I have added this minor improvement first. It was easy, because Cantor already have a feature for hiding/showing/removing results of executed entry.

Plog post about it: https://cantorgsoc2020.blogspot.com/2020/06/cantor-new-features.html

Comment/uncomment (from execution) cells (T12843 on phabricator)

I have added possibility to Excluding some entries from execution useful for user, for example, when the user experiments with code and want to understand, which variant of code better. Exclusion of entries is more easy for user, what commenting parts of code. Especially, if language of the backend don't allow multiline commenting (for example, in python users comment multiline code via multiline strings). Excluding action can be done from entry context menu, which appears on right mouse button click.

Plog post about it: https://cantorgsoc2020.blogspot.com/2020/06/cantor-new-features.html

Possibility for adding horizontal line entry

I have added possibility for adding horizontal line entry. It is a minor, but useful feature, which allow add visible horizontal line in worksheet. It will be useful for visual separation of worksheet.

Plog post about it: https://cantorgsoc2020.blogspot.com/2020/06/cantor-new-features.html

Zoom bar (for more easy zoom changing)

I have added zoom bar, which make zoom changing more convenient. Before, Cantor have had possibility for changing zoom, but method of doing it not very convenient for user - user could increase/decrease zoom on 10% and reset zoom to default via menu actions. Now, user have a zoom bar, which will show current zoom (in percents), will have set of predefined zoom values and allow set manually set need zoom level (right away, without repeatedly increasing zoom level by 10% via menu to satisfactory zoom level).


Summary

Done

Features

  • Improved the handling of external packages in plot2d and plot3d extensions (T9475 on phabricator).
  • Possibility for adding horizontal line entry
  • Added tooltip notes in settings for better UX (T12492 on phabricator)
  • Collapse/uncollapse all entries (T12843 on phabricator) and remove all entries results.
  • Comment/uncomment (from execution) cells (T12843 on phabricator).
  • Possibility for adding horizontal line entry
  • Improve Cantor’s panels performance and usability.
  • Zoom bar (for more easy zoom changing).
  • Adding a new panel for file browsing.
  • Possibility to organize worksheet structure (T12844 on phabricator).
  • Copy/paste image into entries (for example, markdown entry) or as entries (for example, pasting image as ImageEntry).

Bug fixes

  • Fixed tabulation behaviour in Command Entry (bug №418358).
  • Fixing problems with portability Image Entry
  • Better information from variable manager (bug 409137).
  • Fixing wrong highlighting in R backend: the backend doesn’t distinguish system functions and system constants.

In Progress

Bug fixes

  • Fixing Julia interrupt code: it shouldn’t work as backend restart.
  • Fixing color problems on print, when using a theme with non-default colours
  • Fixing strange problems with plots in Octave backend (bug №408335).

Links to Blogs and other writing

  1. Blog
  2. Proporsal
  3. My commits in Cantor repository