membrane

Kimo 2022-07-02T11:58:23.575979Z

Trying to get a vdom project working, repl says The required namespace "vdom.js" is not available, it was required by "vdom/core.cljs". Any hints?

;; deps.edn
{:paths ["src"]
 :deps {thheller/shadow-cljs {:mvn/version "2.19.5"}
        com.phronemophobic/vdom {:mvn/version "0.2.2"}
        com.phronemophobic/membrane {:mvn/version "0.9.31.8-beta"}}}
;; shadow-cljs.edn
{:deps true
 :dev-http     {8081 "public"}
 :builds
 {:app {:target      :browser
        :devtools {:after-load kimok.membrane-test/init}
        :modules {:app {:init-fn kimok.membrane-test/init
                        :entries [kimok.membrane-test]}}}}}
(ns kimok.membrane-test
  (:require [membrane.ui :as ui]
            [membrane.vdom :as backend]))

(defn init [] (backend/run #(ui/label "hi") {:container (js/document.getElementById "app")}))

Kimo 2022-07-02T11:59:27.875489Z

org.clojure/clojure 1.11.1
  . org.clojure/spec.alpha 0.3.218
  . org.clojure/core.specs.alpha 0.2.62
thheller/shadow-cljs 2.19.5
  . org.clojure/data.json 2.4.0
  . org.clojure/tools.cli 1.0.206
  . org.clojure/tools.reader 1.3.6
  . nrepl/nrepl 0.9.0
  . cider/piggieback 0.5.3
  . com.cognitect/transit-clj 1.0.329
    . com.cognitect/transit-java 1.0.362
      . com.fasterxml.jackson.core/jackson-core 2.8.7
      . org.msgpack/msgpack 0.6.12
        . com.googlecode.json-simple/json-simple 1.1.1
        . org.javassist/javassist 3.18.1-GA
      . javax.xml.bind/jaxb-api 2.3.0
  . com.cognitect/transit-cljs 0.8.269
    . com.cognitect/transit-js 0.8.874
  . org.clojure/core.async 1.5.648
    . org.clojure/tools.analyzer.jvm 1.2.2
      . org.clojure/tools.analyzer 1.1.0
      . org.clojure/core.memoize 1.0.253
        . org.clojure/core.cache 1.0.225
          . org.clojure/data.priority-map 1.1.0
      . org.ow2.asm/asm 9.2 :newer-version
      . org.clojure/tools.reader 1.3.6
  . com.google.guava/guava 31.0.1-jre
    . com.google.guava/failureaccess 1.0.1
    . com.google.guava/listenablefuture 9999.0-empty-to-avoid-conflict-with-guava
    . com.google.code.findbugs/jsr305 3.0.2
    . org.checkerframework/checker-qual 3.12.0
    . com.google.errorprone/error_prone_annotations 2.7.1
    . com.google.j2objc/j2objc-annotations 1.3
  . org.clojure/clojurescript 1.11.60
    . org.clojure/tools.reader 1.3.6
    . com.cognitect/transit-java 1.0.362
  . com.google.javascript/closure-compiler-unshaded v20220601
  . org.clojure/google-closure-library 0.0-20211011-0726fdeb
    . org.clojure/google-closure-library-third-party 0.0-20211011-0726fdeb
  . org.clojure/google-closure-library-third-party 0.0-20211011-0726fdeb
  . thheller/shadow-util 0.7.0
    . hiccup/hiccup 1.0.5
  . thheller/shadow-client 1.3.3
    X org.clojure/core.async 0.3.443 :older-version
    . hiccup/hiccup 1.0.5
  . thheller/shadow-undertow 0.2.1
    X org.clojure/core.async 1.3.610 :older-version
    . io.undertow/undertow-core 2.2.4.Final
      . org.jboss.logging/jboss-logging 3.4.1.Final
      . org.jboss.xnio/xnio-api 3.8.0.Final
        . org.wildfly.common/wildfly-common 1.5.2.Final
        . org.wildfly.client/wildfly-client-config 1.0.1.Final
          X org.jboss.logging/jboss-logging 3.3.1.Final :older-version
          X org.wildfly.common/wildfly-common 1.2.0.Final :older-version
      . org.jboss.xnio/xnio-nio 3.8.0.Final
        . org.jboss.xnio/xnio-api 3.8.0.Final
          X org.jboss.threads/jboss-threads 2.3.3.Final :older-version
      . org.jboss.threads/jboss-threads 3.1.0.Final
        . org.jboss.logging/jboss-logging 3.4.1.Final
  . thheller/shadow-cljsjs 0.0.22
  . hiccup/hiccup 1.0.5
  . ring/ring-core 1.9.5
    . ring/ring-codec 1.1.3
      . commons-codec/commons-codec 1.15
    . commons-io/commons-io 2.10.0
    . commons-fileupload/commons-fileupload 1.4
      X commons-io/commons-io 2.2 :older-version
    . crypto-random/crypto-random 1.2.1
      . commons-codec/commons-codec 1.15
    . crypto-equality/crypto-equality 1.0.0
  . io.methvin/directory-watcher 0.15.1
    X net.java.dev.jna/jna 5.7.0 :older-version
    . org.slf4j/slf4j-api 1.7.30
  . expound/expound 0.9.0
  . fipp/fipp 0.6.26
    . org.clojure/core.rrb-vector 0.1.2
  . com.bhauman/cljs-test-display 0.1.1
com.phronemophobic/vdom 0.2.2
  X org.clojure/clojurescript 1.9.89 :older-version
  X org.clojure/core.async 0.2.385 :older-version
com.phronemophobic/membrane 0.9.31.8-beta
  . cnuernber/dtype-next 8.041
    X org.ow2.asm/asm 9.0 :superseded
    . insn/insn 0.5.2
      X org.ow2.asm/asm 9.0 :older-version
    . camel-snake-kebab/camel-snake-kebab 0.4.2
    . it.unimi.dsi/fastutil 8.2.1
    . org.xerial.larray/larray-mmap 0.4.1
      . org.xerial.larray/larray-buffer 0.4.1
    . org.apache.commons/commons-math3 3.6.1
    . org.roaringbitmap/RoaringBitmap 0.9.0
      . org.roaringbitmap/shims 0.9.0
    . com.github.wendykierp/JTransforms 3.1
      X org.apache.commons/commons-math3 3.5 :older-version
      . pl.edu.icm/JLargeArrays 1.5
        X org.apache.commons/commons-math3 3.5 :older-version
    . techascent/tech.resource 5.04
      . org.clojure/tools.logging 1.1.0
    X com.google.guava/guava 30.1.1-jre :older-version
  . org.apache.commons/commons-text 1.9
    . org.apache.commons/commons-lang3 3.11
  . net.n01se/clojure-jna 1.0.0
    X net.java.dev.jna/jna 4.0.0 :older-version
  . net.java.dev.jna/jna 5.10.0
  . com.rpl/specter 1.1.3
    . riddley/riddley 0.1.12
  X org.clojure/core.async 1.4.627 :older-version

phronmophobic 2022-07-03T03:28:15.156499Z

I'm not sure the vdom backend has been migrated to shadow-cljs yet. The vdom backend is mostly just a proof of concept and is the least tested of all the options. Any particular reason you wanted to try it?

Kimo 2022-07-03T10:34:56.811229Z

Just part of my windmill tilt toward using membrane for everything, haha. The idea of building reactive web apps out of pure geometry and immutable state seems too good to pass up. For the same reason, I see membrane as an educational tool. Once the implementation stabilizes, I think this can reach a whole new level of beginner-friendliness.

šŸ‘ 1
Kimo 2022-07-03T10:37:56.267689Z

> I'm not sure the vdom backend has been migrated to shadow-cljs yet Hope I can look into that at some point. I figured it might have to do with the extern declarations and depending on clojure 1.8. Wish I could just fix it, but the clojure tooling docs are so cryptic....

phronmophobic 2022-07-03T21:59:12.284759Z

Yea, making membrane easier to use and web friendly is an eventual goal, but there's a few more steps along the way

phronmophobic 2022-07-03T22:00:07.967819Z

I’m currently working on direct manipulation tools that also play with with programmatic usage

phronmophobic 2022-07-03T22:01:23.503689Z

Currently, the best way to get a membrane ui running in the browser is the webgl backend.

phronmophobic 2022-07-03T22:03:10.305639Z

I think it eventually makes sense to have an html based backend and add general support for backends to interop with existing components, but it's not currently a priority.