The visual tools group will have its 13th meeting on Oct 7th Oct. 14th.
It will be a monthly meeting, focusing this time on different ways (in Clojure and other languages) to create interactive visualizations.
Joining
Please use the Going button at the top of this post to mark your participation.
You can also use the Add to Calendar to add the event to your calendar.
If you wish to present anything in the meeting, suggest ideas, or raise questions, that would be wonderful. It’d be good to know in advance if possible so that we can be clever about our use of time.
Agenda
@adham - will share an overview (and a use case) of Shiny – a package for interactive data visualizations in R (and recently also Python)
@adham: here’s the example of atom and add-watch I wrote, but didn’t have time to share:
;; note - others in this room know atoms better than me (especially Adrian).
;; adham asked about reactive values in Clojure.
;;
;; Teodor: atoms have some reactivity built in :)
(defonce box-1 (atom {}))
(add-watch box-1 ::watch (fn [_key _ref _old new]
(prn new)))
;; Now, watch as I put stuff in there
(swap! box-1 assoc :value (rand))
;; I execute that line a few times.
;;
;; In my REPL, I see the following:
{:value 0.10408007288630139}
{:value 0.7752239947316922}
{:value 0.0769480978634669}
{:value 0.8745944816425095}
{:value 0.85078953052102}
{:value 0.13343801414351208}
;; and a reagent.core/atom is just a clojure.core/atom that also tracks
;; dependencies :)
;;
;; so that when you change one reagent atom, dependent reagent atoms also
;; change.
;;
;; without having to fiddle with add-watch --- it's all automatic.
Atoms won’t get you all of shiny. But the built-in atom functionality is definitely worth exploring!
For prototyping in general, I really like playing with simple pieces first — rather than adding lots of dependencies as step 1. I find that helps me keep stuff simple.