Name:
Atul Jangra
Email:
address@hidden
Name of the project:
Octave GUI Improvements and New Implementations
Summary:
Octave is currently written in C++/QT. Though it have a great UI , but as pointed out by the organisation , it is not ready for production.
The project will basically aim at improving the User Experience of the software. This can be done by following steps:
- Improving the MainWindow:
Terminal and Document widget are currently in tabbed in the mainWindow. But now separate area will be assigned to both of them so that they can behave as two independent units.A large part of area will be given to the command window(by default). But user will have independence of resizing and re-arranging the widgets according to their personal preference.
- Improve the IRC client:(lower priority)
Currently the UI of IRC client is not so informative .So more UI will be made more informative by adding more custom functions.This feature will be implemented only if it’s really quick. -
Improving the documentation browser:
The documentation browser will be provided with new improved UI. Faster navigation,control of docs from command window will be implemented.(type "doc exam" and you will be redirected to “exam” location of manual.
(optional)Search within browser will be implemented.Focusing on search,it will be an index based search, and will use an efficient algorithm that will be developed in c/c++. -
Thread-safety:
Octave GUI is currently not thread-safe.Although interpreter and GUI are running in different threads but still there are many possibilities for improvements.Currently I am reading about debugging race conditions.
- Other small implementations:
Other small functionalities such as:
a.Ability to create/delete/copy/paste files and folders in the FileExplorerDock will be added.
b. Changing the value of a variable in the workspace by single/double click will be added.
c.Repetition of commands in the historyDockWidget will be shown as a single entry(as a TreeView which can then be expanded as a normal tree)This would make wiser use of allocated space to HistoryDockWidget.
Note: Inspiration for GUI will be mainly GUI Octave and sometime Matlab also(We can figure out the best feature and implement it).
Benefits
Users: Users will have benefit of faster navigation, better and informative user interface so that it can make their task easy and fast.Improved UI , Improved IRC client will be very helpful to the users. This will increase the user experience of GNU Octave.
GNU Octave: GNU OCtave will itself be benefited as they will get a better product which will be ready for production. This project will result in a product that will prove that hiding source is not necessary to produce a quality GUI.This will somehow aim to satisfy Matlab users who want to be shielded from the horrors of a CLI interface.
Plan: (Familiarisation period).
I will familiarise myself with whole , code , try to fix and provide patches for the same.
(Community bonding period)
1.Focus will be on community bonding , know about the mentor personally and discuss things related to the project.
2.Documentation Reading.
3.To do self coding with GNU Octave to improve my further understanding with the Core Octave and GUI.
4.To discuss the methods for making Octave more thread-safe.
5.During this period I will remain in constant touch with my mentor and the GNU Octave community. I will remain active on IRC and Mailing lists to discuss and finalize on the modifications (if any) that needs to be on existing strategies and design of new strategies. (Coding Period starts)
1. Improving IRC Client. 2.Making GUI more flexible by improving MainWindow.
3.Improving Documentation Browser.
4.Other small basic Implementations Mid-Term Evaluation 1.Thread safety will be considered and implemented in this time.
2 Any other implementation which can come into consideration later either by me or by my mentor or anybody(User or other Developers) will be implemented in this period.
3.Documentation of whole work done.
Buffer time kept for unexceptional delays. ( And in case of no delays, we can think of more functionalities to implement or solve bugs)
Official Pen Down.
Time for Testing and scrubbing the code. Firm Pencil Down.
--If you are unable to complete the project, are the results from part-way through still useful? How?
Yes Each and every part is pretty independent, completion of each part
will be useful for Octave. --How will everybody know whether things are on-track at the halfway evaluation point?
If all the work stated before july 9 is completed, then I will be certainly ahead of halfway of project.But if in any unavoidable circumstances, I am not able to complete the three points before July 9, then half-way will be more than two points covered. And then the buffer time will be used
Communication
email:address@hidden
email:address@hidden
Phone number: +918800106568 Facebook: https://www.facebook.com/atuljangra
Twitter: @atuljangra My Mentor(Jordi G. H.) will be able to see my progress in the code through mercurial.(or any other version control system.)
Our communication will be based mainly on GTalk and IRC #Octave. I will prefer communication on daily basis. So that we can work out things that would be best for GNU Octave.