You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue will likely require work in biolab/orange-widget-base, but I'm opening it here because it mainly pertains canvas.
Here's an idea: instead of implementing biolab/orange-widget-base#86, which seems complex and hard to execute, let's start simple, and separate canvas-core into two processes:
the canvas, in which the main window runs,
the widgets, in which widget windows and computation run.
Even if widgets are threaded, it's very hard to interact with the application, as inputs are ignored. I find myself spam-clicking something when a widget is doing work in a thread, hoping I will click at just the right time for the event loop to catch it. Let's at least separate the canvas process so if an unwanted link that freezes Orange is made, you don't need to crash the whole application; you can restart the kernel.
Concept image:
The pause button pauses computation while the restart button shuts down the kernel and starts it anew.
Off the top of my head, this seems relatively straightforward to implement. I'm not sure how easily we can cut canvas-core in half, but it feels like a realistic idea. @ales-erjavec, what do you think?
If we can pull this off, it will fix a massive UX issue. Crash recovery covers up the symptom of crashing and restarting Orange, but a feature like this could bring us to the reliability of a jupyter notebook (which inspired this issue). Imagine if you had to restart the process every time you wanted to cancel computation. It seems unimaginable – I think that's how we'll feel about Orange if we push this through :)
The text was updated successfully, but these errors were encountered:
This issue will likely require work in biolab/orange-widget-base, but I'm opening it here because it mainly pertains canvas.
Here's an idea: instead of implementing biolab/orange-widget-base#86, which seems complex and hard to execute, let's start simple, and separate canvas-core into two processes:
Even if widgets are threaded, it's very hard to interact with the application, as inputs are ignored. I find myself spam-clicking something when a widget is doing work in a thread, hoping I will click at just the right time for the event loop to catch it. Let's at least separate the canvas process so if an unwanted link that freezes Orange is made, you don't need to crash the whole application; you can restart the kernel.
Concept image:
The pause button pauses computation while the restart button shuts down the kernel and starts it anew.
Off the top of my head, this seems relatively straightforward to implement. I'm not sure how easily we can cut canvas-core in half, but it feels like a realistic idea. @ales-erjavec, what do you think?
If we can pull this off, it will fix a massive UX issue. Crash recovery covers up the symptom of crashing and restarting Orange, but a feature like this could bring us to the reliability of a jupyter notebook (which inspired this issue). Imagine if you had to restart the process every time you wanted to cancel computation. It seems unimaginable – I think that's how we'll feel about Orange if we push this through :)
The text was updated successfully, but these errors were encountered: