You are viewing archived messages.
Go here to search the history.

yeT 2022-08-11 23:01:38

built a little thing with my friend Jake, glitch.com/~zoa-playground try pressing the letters on your keyboard, clicking on the little blocks (zoa), and connecting the Zoa together! I’d love to hear about what you find, code is up on glitch if you want to remix/make new zoa, be warned it’s pretty hacky p5 rn

yeT 2022-08-11 23:03:40

also, note blocks only work in firefox right now, so if you want to make some music, head over there

Ryan Robitaille 2022-08-14 01:48:20

youtube.com/watch?v=24GRiOCa1Vo

Hey all! I want to present the first Alpha release of a project of mine that I've been working on for quite some time - Data Rabbit. It is a flow-based Clojure(script) live-coding eval/REPL canvas for "composable" visual exploration, experimentation, and data observability (yeah, that's a mouthful).

Conceptually, it's a a remix of a number of different ideas. Think: Notebook + Whiteboard + Lighttable (with some Smalltalk, Hypercard, Bret Victor & 70s Flow-based Programming influences thrown in). ;)

Basically, think of it like this... it allows the chaining (the "flow") of arbitrary ClojureScript eval & Clojure nREPL "blocks" that can also compose together into single (and recursive) views - with a heavy focus on visualizing the "data context" of the block's edges. Combine that with some handy "scrubbing" and editor eval features, and basic code generation helpers for common tasks - and I think it's pretty interesting (but hey, I'm biased).

It's meant to run on your local machine and saves all flows as flat EDN files. However, the website (datarabbit.com) is running a special public version that ONLY has CLJS blocks & some fun small examples - but allows loading and saving flow files to/from your browser. So you can play around w/o downloading or running anything (no signing up or logging in - just start hacking). You won't have any of the cool CLJ nREPL block features, but you'll be able to get the general idea hopefully.

The interface is fairly involved at first glance so please do watch the video before you dive in. I made one video explaining the website hosted version (this one here) where I run though the basic features & controls. There is a second video going up later this week where I go through every part of the self-hosted server version in detail, with a full slide deck, including some neat examples (dashboarding, CLJ nREPs, tech.ml.dataset, incanter, canvas drawing, etc).

As I said - it's literally "Alpha 1 / Public Release 1" so there are bound to be many bugs, UI polish issues, and general wonkiness (although I'm fixing them as I encounter them).

Thanks so much. Hope everyone is having a great weekend.

Ivan Reese 2022-08-14 02:45:04

This is incredible work, and an excellent video introduction.

Jimmy Miller 2022-08-14 03:46:39

This is fantastic! As someone who has done a ton clojure data work and built tons of internal devtools/visualizations, I would use this in a heartbeat. The idea of mixing cljs and clj blocks in one canvas is really interesting. Definitely let me know if you are looking for contributors.

Ryan Robitaille 2022-08-14 04:52:44

Thanks so much. I was worried about the video - I just wanted to get it out tonight and after the nth take I was like, ok, this works. Haha.

As someone whos workflow generally consists of data pulls small and large, random bits of SQL, exploration viz, various counts, small dashboards, etc. I always wanted a tool where I could arrange that as a "map" of my travels, lay it out and look at how it reacts to filters/changes - and if I could then arrange those bits into the final result (you know, as I gain an understanding of what it is I am trying to communicate) - even better.

It's funny, I set out long ago - to make a Clojure-friendly Superset / Data viz type tool - but in order to get the flexibility and freedom I wanted... it ended up kind of like a REPL IDE?

Plus my love for ETL / DAG tools brought in the Flow-Based stuff... and here we are. Haha.

Tom Larkworthy 2022-08-14 10:53:58

wow that really amazing, Great art style. I love how you can pull data apart by drag slicing. I use Observable a lot which is kinda conceptually similar but this has better graphics and better output treatment. What made me super sticky with Observable is the fact notebooks were ES6 modules and that you could import other notebooks/canvases so you could build up larger abstractions, I hope you will go in that direction too. BTW, firebase works well for providing state, and also I managed to wire up Redis even from the web. I am curious how easy it is to pull in JS ES6 modules from clojurescript? The tool would very compelling for me personally if I had access to the JS ecosystem.

Ryan Robitaille 2022-08-15 03:11:09

Better video that might resonate w more people less interested in CLJS and more with CLJ work.

youtube.com/watch?v=PwzucD5qoD4