Things That Would Be Nice

These changes aren't currently scheduled to be done, and may not even make sense. This is just a list of things that at some point I've thought might be nice to have.

Addins

  • Integrate Mathematica as a plotter
  • Make an evaluation tab that sends commands to Mathematica

Backend

  • Implement disk caching for individual parts of a data elements
  • Migrate compare.config to system preferences service
  • Allow tabs to have multiple possible print destinations
  • Allow clipboard sharing with other VMs
  • Allow elements to store the original element class when serializing a data element in order to use a more efficient implementation when reconstituting
  • Fire more specific change messages when a generator is updated to reduce the amount of recomputation done for trivial tasks

Compare^2

  • Add view filter for rows with/without a specified number of results of a particular type in Compare^2
  • Add ability to increase and decrease filter fuzziness in Compare^2
  • Add printing support to Compare^2
  • Add clipboard support to Compare^2

Debugging

  • Add option to close a Console
  • Add option to clear Console
  • Add command history to Console
  • Add command completion to Console

Documentation

  • Create documentation for using a plotter
  • Create documentation for adding a new plotter
  • Create documentation for adding a new view colorer
  • Create documentation for adding a new data source

Objectives

  • Add more boolean value tests to BooleanRelational objective
  • Implement objective that performs algebraic manipulations on inputs
  • Implement WOSS with a selectable metric (and metrics to go with it!)
  • Implement WOSS with arbitrary precision arithmetic for intermediate calculations
  • Implement arbitrary precision data elements to avoid having to round final result
  • Add Reciprocal Squared Plus One to element weight choices for WOSS and Minkowski objective functions

Transforms

  • Implement transform that performs boolean valued tests on two or more inputs
  • Implement transform that clears the evaluation stream
  • Implement transform that returns a constant value
  • Implement transform that performs algebraic manipulations on two or more inputs
  • Implement transform that selects every nth row starting from some offset and continuing to a specified position (or end of data)
  • Implement element based data slices to make the selecting every nth element transform fast
  • Implement transform that returns a transpose (FlippedDataElement) of the input
  • Implement a transform container that tests for a condition and iterates through its transforms until the condition is satisfied
  • Implement a transform container that evaluates each transform independently and concatenates all of the results
  • Implement a transform container that evaluates only one of its transforms depending on the result of an expression
  • Implement a transform that checks each row of input for the value of a selected column to have some relationship with a specified value and output either that row, the previous row, or a combination of those two rows
  • Add DataElement creating loose transforms to dispatching framework
  • Implement very loose conversions for the method dispatching framework
  • TransformEvaluationTransform should detect whether it's part of an infinite loop

Views

  • Make Compare^2 and SeriesView remember the order of existing columns when changing the table structure
  • Add printing support to ProgrammableDataGeneratorEditor
  • Disable delete selected icon in ProgrammableDataGeneratorEditor when the currently selected item cannot be deleted by that editor
  • Add support for dropping to EditableSeriesView
  • Hide transforms in CellCycleModelView unless ready to evaluate
  • Make newly added rows of ExperimentSeriesView have unique names
  • Add clipboard support to ProgrammableDataGeneratorEditor