[rkward-cvs] rkward TODO,1.133,1.134
Thomas Friedrichsmeier
tfry at users.sourceforge.net
Wed Sep 13 10:12:20 UTC 2006
Update of /cvsroot/rkward/rkward
In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv11896
Modified Files:
TODO
Log Message:
Reorganized TODO
Index: TODO
===================================================================
RCS file: /cvsroot/rkward/rkward/TODO,v
retrieving revision 1.133
retrieving revision 1.134
diff -C2 -d -r1.133 -r1.134
*** TODO 12 Sep 2006 17:14:20 -0000 1.133
--- TODO 13 Sep 2006 10:12:18 -0000 1.134
***************
*** 3,81 ****
All in all, this TODO list is mostly for internal purposes, and many parts may not necessarily be intellegible to anybody but the authors.
! - Advertizing:
- start being a bit bolder about RKWard (descriptions, startup notification, etc.)
- REmbedInternal:
- - probably we do not need na_double at all (just any NaN) => less confusion
-
Bugs:
- There seems to be a race condition at startup, leading to a crash in doPostInit () in rkward.cpp. (Un-)Fortunately it triggers only rarely, and I have not yet figured out, when it occurs.
! RCommandReceiver:
! - add virtual rCommandStarted () function, so receivers can find out, when their command becomes active
!
! Some items I'd like to get done for 0.3.7 or whatever the next release is going to be called, if they don't take too long:
! - RKEditorDataFrame
! - undo/redo
! - deletion of multiple columns in one step
! - when pasting a large array, rows should not be added one by one. Suggested algorithm:
! - if we find out we've already pasted 100 rows, first check, how many more are to come and add this many both to the variable and to the R workspace. Can potentially avoid *lots* of work
! - RKCancelDialog / RKErrorDialog:
! - remove these classes. Port to use RKProgressControl instead
! - Rework package management dialog
! - BUG: "cannot create html package index" when installing as regular user
! - the UI should probably be simplified somehow. But how? All in a single list with "filter"? Ask for ideas/look at other apps
! - this will be very hard to do with the current Qt. We'd really need several checkboxes *within* a QListViewItem. Tackle this when/after porting to Qt4
! - Create an editor for single vectors/factors, or rework RKEditorDataFrame to handle those as well
! - RObjectListView
! - use icons to mark up the different base types
! - David's usability items
! Optional stuff, that could possibly be attacked for 0.3.7:
! - RExpressionObject as an abstraction for R-Expressions (i.e. manually edited expressions).
! - It will be possible to "store" these in the RObjectList and select them just like any other object
! - RKVarslot will allow editing the selected value by hand (or just typing the name in)
! - How to do this nicely UI wise?
! - RFunctionObject for user defined functions. Maybe later it will be possible to use for functions from packages as well
! - would be nice, if it also had some knowledge about function arguments
! - ideally it would also know about the type of the return value, but this may not be realistic
! Timeframe for 0.3.7 release:
! - It would be good, if we're at a releasable state within one month from now (i.e. mid May).
! - if reasonably possible, I think we should release then, even if some of the desired features are still missing
!
! - use SVG device for graphics output
! - provide context menu / other UI to export to different formats / edit
! - hot-key/permanent icon to cancel current command / hold processing. Perhaps in the busy/idle indicator?
! - frequent output of a command should not raise the command log over and over again (user should have a chance to switch away)
! RObjectTables sounds highly interesing. Maybe we can use a transparent table to find out about assignments?
! - Problem: we can't add this on top of the globalenv () (or at least we're not supposed to)
! - can we dare to replace R_GlobalEnv with a fake environment which redirects to the real thing?
! R_MakeActiveBinding sounds even more interesting. Maybe we can use this to "watch" symbols?!?
! - can't track removal or creation of new objects this way
! - seems to work only for top-level objects (elements in a list are not discernable, though we do catch the access to the list itself)
! "First-run wizard"
! - pre-install R packages
! Little annoying stuff:
! - hide tabs in console
! - add an example to show rkward-specific commands (rk.print, rk.graph)
! - instead of delete RObject, call RObject::deleteThis () and check for deleted in rCommandDone ()?
! - use more QDicts instead of QMap<QString,...>s
! - use R_DirtyImage to determine, whether workspace needs to be saved
! - in REmbedInternal, add extractTemporaryStrings (), for strings that do not have to be copied
! - find out how to save toolbar states properly in parts-GUI
! - use constBegin (), constEnd ()
! - get rid of all the superflous dependencies: http://lists.debian.org/debian-devel/2005/12/msg00439.html
! PHP-backend:
! - switch to KProcIO for easier logic
! - http://de3.php.net/manual/en/function.call-user-func.php seems to be faster than eval
! - find out why an error in the backend often leads to a subsequent crash
! - on viewDeactivated, it may not be safe to call setCaption and there activeWindow (). Apparently, the pointer may be invalid:
! - start rkward with empty table. open command editor. switch back to table. Edit some stuff in the table. Ctrl+W. Crash
! Configuration options to add:
- additional console options:
- color highlighting for warnings/errors (once we can identify them reliably)
--- 3,126 ----
All in all, this TODO list is mostly for internal purposes, and many parts may not necessarily be intellegible to anybody but the authors.
! Advertizing:
- start being a bit bolder about RKWard (descriptions, startup notification, etc.)
Bugs:
- There seems to be a race condition at startup, leading to a crash in doPostInit () in rkward.cpp. (Un-)Fortunately it triggers only rarely, and I have not yet figured out, when it occurs.
+ - "cannot create html package index" when installing package as a regular user (due to R.home ("doc") not writable)
+ - on viewDeactivated, it may not be safe to call setCaption and there activeWindow (). Apparently, the pointer may be invalid:
+ - start rkward with empty table. open command editor. switch back to table. Edit some stuff in the table. Ctrl+W. Crash
! UI-stuff
! "First-run wizard"
! - pre-install R packages
! - RKEditorDataFrame
! - undo/redo
! - KDE4
! - deletion of multiple columns in one step
! - when pasting a large array, rows should not be added one by one. Suggested algorithm:
! - if we find out we've already pasted 100 rows, first check, how many more are to come and add this many both to the variable and to the R workspace. Can potentially avoid *lots* of work
! - Twintable/RKEditorDataFrame
! - merge the two classes
! - more efficient syncing: fetch only the values actually needed instead of the whole table
! - make configurable:
! - invalid color (global and per variable)
! - unused color (global and per variable)
! - default alignment (per var type)
! - default precision
! - display of factor level labels (global and per variable)
! - delay of factor-level popup
! - highlighting of value ranges
! - Create an editor for single vectors/factors, or rework RKEditorDataFrame to handle those as well
! - Rework package management dialog
! - the UI should probably be simplified somehow. But how? All in a single list with "filter"? Ask for ideas/look at other apps
! - this will be very hard to do with the current Qt. We'd really need several checkboxes *within* a QListViewItem. Tackle this when/after porting to Qt4
! - RObjectListView
! - use icons to mark up the different base types
! - RKConsole:
! - Console should start a command chain when submitting a batch of pasted commands
! - hide tabs in console
! - RKHelpDlg:
! - in the mid term, this should probably be renamed and moved to windows
! - call .rk.get.installed.packages, and update package selection drop down on every show, but not on startup
! - RKwatch:
! - optionally keep a file log!
! - hot-key/permanent icon to cancel current command / hold processing. Perhaps in the busy/idle indicator?
! - find out how to save toolbar states properly in parts-GUI
! - frequent output of a command should not raise the command log over and over again (user should have a chance to switch away)
! - David's usability items
! - use RKGlobals::marginHint (), RKGlobals::spacingHint () everywhere
! Internal stuff:
! RCommandReceiver:
! - add virtual rCommandStarted () function, so receivers can find out, when their command becomes active
! REmbedInternal:
! - probably we do not need na_double at all (just any NaN) => less confusion
! Detecting object modifications inside R:
! - RObjectTables sounds highly interesing. Maybe we can use a transparent table to find out about assignments?
! - Problem: we can't add this on top of the globalenv () (or at least we're not supposed to)
! - can we dare to replace R_GlobalEnv with a fake environment which redirects to the real thing?
! - R_MakeActiveBinding sounds even more interesting. Maybe we can use this to "watch" symbols?!?
! - can't track removal or creation of new objects this way
! - seems to work only for top-level objects (elements in a list are not discernable, though we do catch the access to the list itself)
! - RExpressionObject as an abstraction for R-Expressions (i.e. manually edited expressions).
! - It will be possible to "store" these in the RObjectList and select them just like any other object
! - RKVarslot will allow editing the selected value by hand (or just typing the name in)
! - How to do this nicely UI wise?
! - RFunctionObject for user defined functions. Maybe later it will be possible to use for functions from packages as well
! - would be nice, if it also had some knowledge about function arguments
! - ideally it would also know about the type of the return value, but this may not be realistic
! - RKCancelDialog / RKErrorDialog:
! - remove these classes. Port to use RKProgressControl instead
! - instead of delete RObject, call RObject::deleteThis () and check for deleted in rCommandDone ()?
! - use R_DirtyImage to determine, whether workspace needs to be saved
! - in REmbedInternal, add extractTemporaryStrings (), for strings that do not have to be copied
! - Object editing / modification tracking:
! - functions to set double/int/string-vectors directly. Use in paste-operations
! - check whether we're running in a PTY, and warn otherwise. Currently the R backend needs this.
! - on exit, check whether there are still RCommands left in the backend and wait/request user-interaction before tearing down the thread. After all, the last command might have been a "save"!
! - How about always doing exiting via a "q ()" command in the backend, instead? That way we could always be sure, all previous commands have been completed before the q ()!
! - error-handling/raising in .rk.do.call
! - I've changed the simple RInterface::issueCommand (QString, ...) command to return a pointer to the RCommand created. This will allow for lots of small cleanups. Do them.
! - well, on second thought, it might be better to rely more on RCommand::id () instead of pointers. Why? The id is unique (until integer overflow). The pointer may be reused after a delete -> potential problem when trying to cancel command which is actually already deleted (and potentially other cases)
! - let's set this back for a while
! - RKVariable:
! - use QIntDict instead of string-map for value-labels / factor levels?
! - UNPROTECT_PTR
! - give informative feedback on syntax errors (line numbers, etc.)!
! General code:
! - use constBegin (), constEnd ()
! - get rid of all the superflous dependencies: http://lists.debian.org/debian-devel/2005/12/msg00439.html
! - use more QDicts instead of QMap<QString,...>s
! - remove classes/files:
! - RKDocManager? Is this used?
! - RKGlobals
! - static members should be moved to the respective classes. Much cleaner!
! R plugins:
! - use SVG device for graphics output
! - provide context menu / other UI to export to different formats / edit
! - PHP-backend:
! - switch to KProcIO for easier logic
! - http://de3.php.net/manual/en/function.call-user-func.php seems to be faster than eval
! - find out why an error in the backend often leads to a subsequent crash
! - plugins (general)
! - add import-filter plugins
! - formula-widget:
! - use smart sorting, esp. of generated string
! - add labels, add "up to level" option
! - add constant term option
! - create a spinbox, that can really deal with real numbers
! - add a help system
! Documentation:
! - add an example to show rkward-specific commands (rk.print, rk.graph)
! API documentation:
! - add page containing a rough overview of general architecture
! - RCommandStack
! Configuration:
- additional console options:
- color highlighting for warnings/errors (once we can identify them reliably)
***************
*** 86,156 ****
- see below: comments on RKEditorDataFrame
- RKHelpDlg:
- - in the mid term, this should probably be renamed and moved to windows
- - call .rk.get.installed.packages, and update package selection drop down on every show, but not on startup
-
- - RKConsole:
- - Console should start a command chain when submitting a batch of pasted commands
-
- RKwatch:
- - optionally keep a file log!
-
- - check whether we're running in a PTY, and warn otherwise. Currently the R backend needs this.
-
- - remove classes/files:
- - RKDocManager? Is this used?
- - RKGlobals
- - static members should be moved to the respective classes. Much cleaner!
-
- stuff to do before 0.4.0 release
- - plugins (general)
- - add import-filter plugins
- - on exit, check whether there are still RCommands left in the backend and wait/request user-interaction before tearing down the thread. After all, the last command might have been a "save"!
- - How about always doing exiting via a "q ()" command in the backend, instead? That way we could always be sure, all previous commands have been completed before the q ()!
- - error-handling/raising in .rk.do.call
- - pick some from below:
-
- code cleanups
- - I've changed the simple RInterface::issueCommand (QString, ...) command to return a pointer to the RCommand created. This will allow for lots of small cleanups. Do them.
- - well, on second thought, it might be better to rely more on RCommand::id () instead of pointers. Why? The id is unique (until integer overflow). The pointer may be reused after a delete -> potential problem when trying to cancel command which is actually already deleted (and potentially other cases)
- - let's set this back for a while
-
- API documentation:
- - add page containing a rough overview of general architecture
- - RCommandStack
-
- (relatively) small stuff to do soon
- - Twintable/RKEditorDataFrame
- - merge the two classes
- - more efficient syncing: fetch only the values actually needed instead of the whole table
- - make configurable:
- - invalid color (global and per variable)
- - unused color (global and per variable)
- - default alignment (per var type)
- - default precision
- - display of factor level labels (global and per variable)
- - delay of factor-level popup
- - highlighting of value ranges
- - Object editing / modification tracking:
- - functions to set double/int/string-vectors directly. Use in paste-operations
- - RKVariable:
- - use QIntDict instead of string-map for value-labels / factor levels?
- - plugins (general)
- - add more plugin-widgets
- - formula-widget:
- - use smart sorting, esp. of generated string
- - add labels, add "up to level" option
- - add constant term option
- - create a spinbox, that can really deal with real numbers
- - UNPROTECT_PTR
- - use RKGlobals::marginHint (), RKGlobals::spacingHint () everywhere
- - give informative feedback on syntax errors (line numbers, etc.)!
! stuff to do before the thing is usable
! - add a help-system
! - mostly everything
!
! stuff to do before a 1.0 release
! - handle graphics
Notes for x11-window capturing:
--- 131,136 ----
- see below: comments on RKEditorDataFrame
! ################## Some internal notes below ##############
Notes for x11-window capturing:
More information about the rkward-tracker
mailing list