Open jaelafield opened 3 months ago
Next planned step is filming a brief video with visual examples of the kind of options with the brushing feature and writing up a few initial corresponding questions, then sending those out for feedback in the herbie channel. Goal to do that is morning of 8/28, though haven't done much on this besides previously discussed planning!
Assuming that's 8/29, that feedback plan sounds good to me! I think we can already plan to implement subset selection with what you've got, pending the solution of the bucketing issue. We can discuss in the meeting tomorrow.
Notes from 9/12 meeting:
UI notes:
Current in-progress (besides above):
package
/-lock.json
changesLower priority UI adjustments to keep in mind for later:
can we make the "default" state, where you haven't brushed, the same as brushing to select the whole region? (Appear the same way in the UI) this might mean presenting the input range differently (making it always use two pins at either side) and also maybe add a background to the not selected region instead of the selected one
Major consideration to come next:
Notes about difficulty with updating global variable causing re-render:
<input>
implementation style of retaining focus"mouse up" action can be detected with .on("end", () => {...
originally I was using .on("brush end", () => {...
"brush end" may be the correct behavior for the highlighting as it's nice for that to be continuous as the mouse drags, but just "end" can be defined separately and may be good for helping with the global variable setting, however that doesn't fix it on its own.
(I'm sick, so not much progress) Have an in-progress attempt to save the brushing state so the selected subset of points can be stored globally and then the brushing can be reapplied after the re-render. Have yet to try to debug it, so unsure if it'll work.
Monday, I re-familiarized myself with what I was attempting earlier last week ^^, and I roughly diagnosed the current bugs, but I also reminded myself how ugly my current approach is. I expect to have a solid hour tomorrow before RA meeting to attempt those fixes I have in mind, but if it works that really just feels like a proof of concept to me, I'd love to find a cleaner way to handle it.
(Covid-catch up on all other things has left me with less time on this than I'd like, so sorry!)
Working on an attempt on the pattern we talked about in 2:1 yesterday.
This portion (the easy part) works fine with a play value for the subset analysis:
global context exists for subset of points analysis
...
in the `ExpressionTable` for each expression where the "error" and "speedup" are calculated
if a subset of points have been selected
instead calculate values to be rendered using subset analysis instead of standard analysis
I need to actually get that analysis value correctly which I will continue to work on before the meeting tomorrow!
Not currently blocked, though I will update here if something comes up as I continue to work on it.
I have an analysis call working on just the subset of points selected. If I have some free time before tomorrow, I'll try to get the "cost" call working as well. I haven't looked into it much, so if it's a similar pattern it should be quick, otherwise I'm unsure.
There's also some bugginess with deselecting a brushed region, so I'll start debugging that also.
Created flag to hide brushing implementation for feature freeze
Plan by meeting tomorrow:
Implement brushing on the Error Plot to give users a focused view on a subset of points.