Three published lectures take three different approaches to an ipywidgets slider, and one of them misleads readers.
| Lecture |
What ships |
lecture-dynamics/lectures/black_litterman.md |
Three FloatSliders at lines 404, 644 and 700. dynamics.quantecon.org/black_litterman.html renders them as draggable controls with no kernel behind them — the embedded widget state holds a single frozen PNG per output. A reader can drag them and nothing will ever happen |
lecture-python-advanced.myst/lectures/black_litterman.md |
The same lecture with the widget code stripped — zero FloatSlider |
lecture-python-advanced.myst/lectures/matsuyama.md:794-828 |
Widget disabled, with an honest note — "This interactive plot is disabled on this static webpage" — and the cells tagged to skip execution |
The third is the only one that does not mislead. The first is the worst outcome available: a control that invites interaction and silently does nothing.
A concrete fix exists for the black_litterman case
The three sliders span 20, 15 and 21 discrete values — τ from 0.05 to 10 in steps of 0.5, λ from 0.1 to 7 in steps of 0.5, and λ from 5 to 1500 in steps of 100. A grid that size precomputes comfortably into plotly animation frames or updatemenus, which are genuinely interactive client-side on a static page with no kernel and no server. That turns a dead control into a live one rather than merely labelling it dead.
Whichever way it goes, the three lectures should agree.
Surfaced while evaluating #54; see also #354 on the plotly renderer inconsistency, which is the same underlying question — what "interactive figure" means on a statically hosted page.
Three published lectures take three different approaches to an
ipywidgetsslider, and one of them misleads readers.lecture-dynamics/lectures/black_litterman.mdFloatSliders at lines 404, 644 and 700. dynamics.quantecon.org/black_litterman.html renders them as draggable controls with no kernel behind them — the embedded widget state holds a single frozen PNG per output. A reader can drag them and nothing will ever happenlecture-python-advanced.myst/lectures/black_litterman.mdFloatSliderlecture-python-advanced.myst/lectures/matsuyama.md:794-828The third is the only one that does not mislead. The first is the worst outcome available: a control that invites interaction and silently does nothing.
A concrete fix exists for the black_litterman case
The three sliders span 20, 15 and 21 discrete values — τ from 0.05 to 10 in steps of 0.5, λ from 0.1 to 7 in steps of 0.5, and λ from 5 to 1500 in steps of 100. A grid that size precomputes comfortably into plotly animation frames or
updatemenus, which are genuinely interactive client-side on a static page with no kernel and no server. That turns a dead control into a live one rather than merely labelling it dead.Whichever way it goes, the three lectures should agree.
Surfaced while evaluating #54; see also #354 on the plotly renderer inconsistency, which is the same underlying question — what "interactive figure" means on a statically hosted page.