This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-08-17
Channels
- # announcements (13)
- # beginners (56)
- # brompton (1)
- # cider (2)
- # cljsrn (10)
- # clojure (369)
- # clojure-australia (4)
- # clojure-boston (1)
- # clojure-europe (28)
- # clojure-nl (1)
- # clojure-spec (1)
- # clojure-uk (18)
- # clojurescript (26)
- # data-science (2)
- # datahike (4)
- # datalog (2)
- # datasplash (6)
- # datomic (9)
- # events (1)
- # kaocha (4)
- # macro (1)
- # malli (22)
- # meander (40)
- # membrane (30)
- # music (1)
- # nbb (3)
- # news-and-articles (3)
- # off-topic (12)
- # practicalli (1)
- # re-frame (19)
- # remote-jobs (1)
- # sci (22)
- # shadow-cljs (15)
- # spacemacs (4)
- # tools-deps (40)
- # xtdb (26)
hi @huxley, really love your meander datascript example. Curious if you or anybody else ever profiled it against datascript? Or how it compares in terms of CLJS bundle size?
boundle size is basically zero, because the meander is macro-based and very little code is added
all subscriptions use doxa queries, which means meander in total. @U5H74UNSF
@huxley looks great. So doxa/meander is fast enough that using subscriptions to recompute queries whenever the root map changes is fast enough - no need for something like pattern-matching on a tx-log of changes to invalidate queries
@U050RLRRQ Yes, it's fast enough, but I'm actually working on what you're talking about
underneath I use editscript
, to calculate the difference in db, it is fast enough and its overhead is ~1ms
I want the queries to be memoized and recalculated only when the data that affects the result changes.
however, there is no problem adding it, but it would be far down on the list of things to do
Currently q
is based only on meander, the consequence of which is that it expands on runetime
currently, apart from me, only one other person is using doxa
, and he is actually giving it direction by sharing ideas
that’s me. I can confirm that Doxa works very well in a re-frame app. looking forward to trying out the new caching feature
When matching against a map, is there a way to capture all of the unmatched kvs? For example, imagine I have this input structure:
{:foo "a", :bar "2", :baz :ping}
And I want to transform it into:
{:foo "a", :bar 2, :baz "ping"}
but I don’t want to have to explicitly account for :foo
.
I guess this question could be rephrased as, “can meander be used to work with open maps?”That requires you to pass the extra kvs along manually though, which means you’d have to remember to do it if you want your maps to be open. There’s not a way to do something like that semi-automatically, is there?