Pluto.jl: Visualize cell reactive dependencies

Created on 25 Feb 2020  路  9Comments  路  Source: fonsp/Pluto.jl

Suggestion:
When focused on a cell, all cells that reference that cell get highlighted. (Either with depth 1, or with full depth.) This makes it easy to see what reevaluating the cell will do.

Vice versa might also be useful.

enhancement frontend help welcome

Most helpful comment

The dots could be interpreted as a chain of different sized weights that the cell is dragging along. Each weight could be clickable to jump to the according depending cell.

All 9 comments

Variables could have a nice rectangular box with rounded corners around them. The color of the box would depend on the section that the variable was defined in (section being determined by last markdown header).

Still not sure how to do this with CodeMirror, maybe you need to define your own mode?

Highlighting depending cells won't work as nicely in a large notebook since most of the depending cells might be out of view.

I'm not sure anymore about solving this by a sort of birds view like I suggested in #116 . My impression from similar features in editors, where for example the scrollbar is a map of the code, is that it's clutters the UI more than it really helps.

Instead one could visualise a kind of weight of a cell based on the number of cells depending on it or maybe the estimated sum of execution time of all cells depending on it.

I'm not sure how to visualise the weight intuitively. Simplest would be a number in some corner giving the total execution time. This way you also get a simple profiling mechanic.
Giving heavy cells a stony look and light cells a cloudy look is probably to childish/confusing :-).

I also like the idea from malyvsen to give sections or maybe areas of a notebook different (background?) colours, so you get an intuitive feeling where you are ("I'm currently in the blue section of my notebook"). In that theme, the weight of a cell could be visualised by a rainbow of the colours of depending cells. But that might again be hard to get right without becoming distracting or childish looking.

The stony/cloudy cells could be the same mechanism as the locking of cells fonsp mentioned in https://github.com/fonsp/Pluto.jl/issues/116#issuecomment-631121124

I love the idea of showing the _weight_ of a cell visually!

Cells could also show a row of dots in the corner, each corresponding to a dependent cell. The radius/opacity of a dot can be the corresponding runtime (in log scale), the colour can be the corresponding section colour.

(No idea is too childish!)

The dots could be interpreted as a chain of different sized weights that the cell is dragging along. Each weight could be clickable to jump to the according depending cell.

I think it is quite important to have tools for visualizing dependencies, as the linear structure of a script is given up. I might be useful to think about the emerging collection of cells in a notebook more in the sense of a spreadsheet. So let us see what the spreadsheet guys have to offer:

https://support.microsoft.com/en-us/office/display-the-relationships-between-formulas-and-cells-a59bef2b-3701-46bf-8ff1-d3518771d507

https://help.libreoffice.org/6.4/en-US/text/scalc/01/06030000.html

IMHO not childish enough... But what comes out for me is that one needs visualization of both dependents and precedents.

I like the idea of a chain of weights. I think it would be nice to be able to filter a notebook to only show a cell and its dependents, too. You see these kinds of graphs quite a lot in disassembly software. E.g. in IDA Pro:

image

I don't think Pluto needs a graph, but moving the cells so that the whole chain is immediately above the dependent cell might be nice.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

enuit picture enuit  路  3Comments

FelixBenning picture FelixBenning  路  3Comments

MikaelSlevinsky picture MikaelSlevinsky  路  7Comments

briochemc picture briochemc  路  6Comments

karlwessel picture karlwessel  路  4Comments