Fork me on GitHub
#reveal
<
2021-10-27
>
vlaaad13:10:16

In case you missed it in the #announcements, I just released a new version of Reveal Pro — 1.3.265. This release adds SQL DB explorer that allows you to get a good overview of your database schema and seamlessly browse relational data across multiple tables, all while being available in your REPL. See more here: https://vlaaad.github.io/reveal-pro#sql-db-explorer

Stuart13:10:27

Lenny Kravitz is metal :thinking_face:

😄 1
chromalchemy16:10:31

Cool. I never learned sql proper, and have been looking towards EAV stores (datomic etc) for the prospect of easy joins, and perhaps more intuitive querying. But this is a nice invitation to try sql out directly.

chromalchemy16:10:33

In this article, https://blog.wsscode.com/extending-reveal/ @wilkerlucio mentions looking at https://github.com/guusdk/java-cef as a more up-to-date chromium engine to render Reveal views, but decided it looked complex to set up. Has anyone seen or considered https://github.com/phronmophobic/clj-cef (Clojure bindings for the Chromium Embedded Framework)? ps. Is this something like this still necessary for advanced webkit rendering in Reveal?

phronmophobic17:10:46

As far as I can tell, java CEF doesn't have a good story for integration with javafx (see this https://bitbucket.org/chromiumembedded/java-cef/issues/163/provide-javafx-node-for-jcef), but clj-cef can. I think clj-cef would make a great fit for this sort of thing, but I'm not sure what a good API would look like. CEF offers lots of knobs. If someone had a compelling use case, I'd be happy to work with them to make clj-cef work for them.

vlaaad19:10:38

My main concern with going browser route is VM boundary — I want to access and inspect objects living in JVM, when using browser it's getting harder to do so. Maybe I'm over-worried about it...

phronmophobic19:10:32

That's the benefit of CEF, it's in-process!

vlaaad19:10:07

hmm, I should check out clj-cef then...

vlaaad19:10:44

oh right, it doesn't work on Windows, that's what prevented me from checking it out the last time I saw it...

phronmophobic19:10:46

oh yea, I forgot about that too

phronmophobic19:10:17

There's no reason why it couldn't work on windows. I just don't know how to setup a windows environment

phronmophobic19:10:12

That's been on my todo list forever, I should give it a shot

vlaaad19:10:14

Hmm, I'm still not sure using CEF can be the way forward for Reveal... Switching to CEF probably implies a rewrite, and I'm not sure I have energy to do that

phronmophobic19:10:59

I was thinking you would just embed CEF as a javafx view inside of what you already have

vlaaad19:10:16

Ah, that sounds possible

phronmophobic19:10:16

basically, as a replacement for however you used :fx/type :web-view

phronmophobic20:10:45

the cool thing about CEF is that you have all these hooks and knobs. For instance, you can stop processing the browser, you can step the browser's event loop, override request processing, save a screenshot on every repaint, and a bunch of other wacky things.

chromalchemy16:10:08

I'm wondering if it could be advantageous to prototype (web) UI code in Reveal. To take advantage of the ala-carte nature of the REPL, instead of always having to scaffold a whole app. Also to leverage the the interactive meta-UI of Reveal to build ad-hoc design tooling (like a slider that changes font size, that is independent of production code); basically instrument UI components for dev/design mode. And also to show n custom (reactive?) views simultaneously (figwheel style..). Does this make sense? or do other projects, developer modes already handle all this sufficiently? Food for thought: @smith.adriane's Membrane project is trying to address the arbitrary instrumentation of UI components. I wonder how Membrane's principled model of UI complements or contrasts with Reveal's model of in-process REPL UI? https://github.com/phronmophobic/membrane

phronmophobic18:10:39

I'm a big fan of reveal, I've even written some plugins using membrane for reveal: • https://github.com/phronmophobic/reveal-treemaphttps://github.com/phronmophobic/reveal-exception I think there's still lots of cool ideas yet to be explored and reveal's innovations are a great example. Personally, the one big change I would like to see is have all of the various repl UI projects leverage a common format so that the features are decoupled from their environment. There are cool tools being written for calva, cider, portal, reveal, cursive, web (eg. re-frame 10x, pathom viz), etc and they're all coupled to their environments. Since membrane's UIs aren't coupled to any specific environment, they could be run anywhere. It doesn't even have to be membrane, but I'm not aware of other options. If the community was all building tools that could be shared across environments, we would all benefit.

vlaaad19:10:35

I can't wait for 2040s when the only remaining VM alive is wasm 😄

vlaaad19:10:50

@U09D96P9B btw Reveal is built to create ad-hoc visual tools, I'd suggest checking out https://github.com/vlaaad/reveal/blob/master/src/vlaaad/reveal/ext.clj for building blocks and some examples here: https://github.com/vlaaad/reveal/tree/master/examples

vlaaad19:10:25

including reactive views that watch refs...

vlaaad19:10:57

ah I was wrong, its 2035, not 2040

chromalchemy04:10:15

@U47G49KHQ thanks for the examples. I will try them out. @smith.adriane that’s a great vision, reusable interoperable dev viz components! Thanks for the plugins. The treemaps are neat