Visual-tools meeting 16 - Calva Notebooks & Portal - summary & recording

On Nov 27th, we had the 16th meeting of the visual-tools group, a group for collaborations across different Clojure projects for literate programming and data visualization.

In this meeting, @Lukas_Domagala of the Calva team and @djblue, Portal’s creator, presented Calva Notebooks, their integration with Portal, and other Portal updates.

In the discussion, we also had @PEZ, Calva’s main author, Brian Badahadah of the Portal team, and more friends.

Recording

Will you join us?

Please reach out if you are interested in this group.
It is recommended to follow the #visual-tools Zulip stream and the #visual-tools Slack channel.

2 Likes

This is amazing, and I did a double take when I realized this is actually already released, and ready to be tinkered with.

@Lukas_Domagala , @PEZ & co - is this thread a good place to provide early feedback? Is it the right time to provide feedback?

1 Like

I’m too excited to wait so I’ll just offer my 2 cents here:

  • I really appreciate the goal statement: turning normal Clojure namespaces into Notebooks. As someone who does no data stuff whatsoever, I can’t use notebooks for my normal day-to-day work.
  • The Notebook approach closes the hole that VSCode has: we cannot show a nice HTML popup of the evaluated code results in the main editor.
  • I think that the work done in Calva & Portal might help a lot in circling back to the calva.output window (perhaps making it a web view where the evaluated results are mini-portals?) - and if VSCode ever adds HTML popups, Calva could show mini-portals in there too.
  • Notebooks have some pretty dangerous buttons like “execute all”, but Clojure code in rich comment forms is written with the assumption that it will be run manually. I definitely have dangerous side effects in my rich comment forms, especially in namespaces that are meant to “patch production”.
  • Performance can be problematic if there are so many mini-portal elements on the screen. Perhaps for scalar values (booleans, numbers etc) and definitely for functions, it would be nice if Portal was skipped entirely.
  • A riff on the above, sometimes a pretty-printed value is enough, that could probably be provided by Calva rendering the output script to static HTML and having that as an option? Then Portal could be opt-in instead of the default for all evaluations.

Thanks for getting this off the ground, it looks like a great addition to Calva!

1 Like