Bessy Roadmapping and Backlog Grooming 15 Nov 2023

Greg’s Stream of consciousness.

Things to do priority in cleaning code:

  1. Separate EEGData and ERPData - files are too big
  2. Move all logging/printing to logger object. Make logger object. This will move a lot of variables around.
  3. Stop array indexing in flow control, it is is hard to follow. What this means:
  1. Instead of returning tuples return objects. Tuples - get rid of these if we can, give the thing a name, and make real properties. Instead of returning tuples, can we return a single object and get names for what this is.
  1. Private methods use underscores.
  1. Inject classifier at initialization. (Inject at init).
  2. Start-up is slow - make this faster. Optimization in general? We are importing too much at once.
  1. Unit testing - where we can.
  2. Distinguish between markers and control signals in the code.
  3. Backwards compatibility
  1. Bessy exits if EEG stream not available.
  1. Bessy crashes on missing time units member.
  1. Test out and look for ghost streams and what might exist upon crashes
  2. Bessy crashes if trials ends without marked training data
  3. Bessy crashes if we don’t have enough training data for predictions
  4. Check if we are getting packet loss
  1. Bessy crashes if we set iterative training to True
  2. Bessy crashes if stream drops, even for a minute
  3. BUS Error in Signal processing Bandpass, some NUMPY function is calling memory it isn’t allowed to.
  1. Pull out EEG as an object for dependency injection
  2. Pull out Marker as an object for dependency injection
  1. Pull out observer as an object for dependency injection
  2. Provide markers asynchronously - When making predictions, need to send in a marker with a given label. We want to have an option to turn on “always on” classifier predictions out.
  3. Provide prediction probabilities (if possible)