Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 12 12:30
    fahtative commented #26
  • Sep 12 12:17
    fahtative commented #26
  • Sep 12 12:17
    fahtative commented #26
  • Sep 12 12:13
    fahtative commented #26
  • Sep 12 12:01
    fahtative commented #26
  • Sep 12 12:01
    fahtative commented #26
  • Sep 12 11:59
    fahtative commented #26
  • Sep 12 11:59
    fahtative commented #26
  • Nov 30 2020 19:39
    metasoarous closed #34
  • Nov 30 2020 19:39
    metasoarous commented #34
  • Nov 16 2020 05:16
    metasoarous commented #34
  • Nov 14 2020 12:15
    jpmonettas commented #34
  • Nov 14 2020 12:14
    jpmonettas synchronize #34
  • Nov 14 2020 00:59
    metasoarous commented #34
  • Nov 14 2020 00:58
    metasoarous commented #34
  • Nov 14 2020 00:57
    metasoarous commented #34
  • Jul 22 2020 12:14
    jpmonettas commented #34
  • Jul 21 2020 21:34
    metasoarous commented #34
  • Jul 11 2020 13:34
    jpmonettas synchronize #34
  • Jul 07 2020 12:12
    xlfe commented #35
Tyler Tolton
@Defunctionalize
I just don't understand enough about the workflow to debug and troubleshoot. :/
Tyler Tolton
@Defunctionalize
figured it out. sorry for the newb question. I was dispatching using the reframe reg-event-db function.. :sweat:
Tyler Tolton
@Defunctionalize
This message was deleted
Brian Hurlow
@bhurlow
Hello Posh folks! Apologies if this topic is ongoing somewhere else, but I wanted to check and see if anyone has any progress on the combining client queries into a "scoped" datomic view? as outlined in this thread: mpdairy/posh#3 I'm curious if anyone has attempted to analyze the query data to produce a set of datoms suitable for bootstrapping the datascript client :fishing_pole_and_fish:
Will
@Lokeh
are there any examples of plugins for other view frameworks? e.g. rum, quiescent, etc.
Christopher Small
@metasoarous
@lokeh To my understanding there is a rum plugin, or at least some work on one, but it may still be under code review. Check the PRs and issues. Would love to see a quiescent binding.
Brian Marco
@bamarco
@Lokeh I wrote a rum plugin. There were a few bugs with it. I’ve fixed most of them, but haven’t had time to test them to make sure the fixes didn’t introduce new problems. I was also working on a refactor to make the plugin process more robust (the combination of libraries is going to become burdonsome without a more generic way to bind libraries) but I think my solution was too complex so I have abandoned it for now (I think the latest version of spec will address some of these issues)
Tyler Tolton
@Defunctionalize
Is there like, a whitepaper on the concept of pattern matching event data to determine if a subscription needs to be updated? The concept seems so incredibly valuable I'm surprised it isn't discussed more
Christopher Small
@metasoarous
Differential datalog
Tyler Tolton
@Defunctionalize
holy crap, thats amazing
this could be really awesome
Christopher Small
@metasoarous
Yes, and this has been worked on now in Rust, with a Clojure API: https://www.youtube.com/watch?v=ZgqFlowyfTA
drew
@drewverlee

Greetings, hopefully this is the right place to ask this type of question, otherwise i would be happy to move the discussion else where.

Anyone want to try their hand at comparing re-posh (or maybe just posh) to Fulcro? As a starting point, im trying to understand why Fulcro isn't taking advantage of Datascript. The only comment i can find on the subject dates back a year ago when i specifically asked about it on reddit and the short answer was "performance, maybe".

In a larger sense, i see both approaches as very similar in nature. With the key being that client Db is a materialized view of your persisted database. Assuming we have reactive datalog (do we? whats the state of that???) Then i'm some what confused we weren't just building systems that look like datomic queries with some html around them.

In approaching this, im reading through the docs for a lot of projects and i assume ill be doing spikes in them as well as diving into code. None of this is meant to lessen the work anyone is going, rather i assume there are very real trade offs in each approach that matter and mostly this is trying to ferret out the differences because im assuming there enlightening!

Christopher Small
@metasoarous
A big difference is that Fulcro is Om based, while Posh's main API is reagent based (though there's a rum plugin as well, and in theory it could be redesigned to work with om as well).
We do sort of have true reactive datalog via 3df now, but it is mainly designed for running with datomic on the JVM for now. The main obstacle to using on the browser is that the 3df implementation is written in rust (timely dataflow). I've heard tell that this has been successfully compiled to web assembly, but I have yet to try this myself, and have no idea what the distribution details look like there. So for now, assume that this is just going to be useful on the server, and that Posh's query filters are probably the best you're going to get for the moment.
Christopher Small
@metasoarous
Also note that because 3df is rust, you can't do reactive queries that require calling functions, because these would need to run in rust. So even on the server, with 3df, we're going to be a little limited about what we'll be able to do fully differentially.
But here again, where we need to, we can build things to fall back to simple tx filters.
For now at least. Eventually, maybe we'll build our own differential dataflow and datalog. But trying to take it one step at a time.
Datsync has been getting some more attention lately, and may continue to this next month or two.
drew
@drewverlee
thanks! sorry i just saw this.
Erik Kaplun
@erikkaplun
quick question: should posh be considered to be in working condition as of currently?
Christopher Small
@metasoarous
Hi @eallik. More or less, yes. However, there are a couple of outstanding bugs which remain to be fixed.
Basically, as long as you avoid recursive queries, you should be mostly fine.
If you need a recursive query, you can still use a custom match pattern for triggering updates.
Erik Kaplun
@erikkaplun
alright, that seems good
Christopher Small
@metasoarous
Sure thing. If you find anything amiss, please post an issue on GitHub.
Erik Kaplun
@erikkaplun
yes
Erik Kaplun
@erikkaplun
working support for Datomic would currently require datsys, as datomic.clj is mostly todo?
Christopher Small
@metasoarous
Yeah, you'd have to ask @alexandergunnarson
Erik Kaplun
@erikkaplun
at least it is known that posh+datsync is a workable combination
Christopher Small
@metasoarous
Yes, as long as you are ok with full db synchronization
I've got a plan for remote subscriptions and partial db synchronization in datsync
Erik Kaplun
@erikkaplun
could work with full db sync in dev/stage, but not later obviously...
Christopher Small
@metasoarous
The vision there has become clearer of late, what with d3f implementing differential datalog computations
Erik Kaplun
@erikkaplun
what does "d3f" stand for?
Christopher Small
@metasoarous
Sorry; 3df
Erik Kaplun
@erikkaplun
nice, didn't know about it
Grant Peltier
@gfpeltier
Hi Everyone. I apologize if this issue has been discussed in more depth elsewhere but I was hoping to revisit mpdairy/posh#21. Is there any glaring issue with supporting pulls within queries? I noticed that there is an existing function (posh.lib.q-analyze/q-analyze-with-pulls) which was commented out back in 2016 and is naturally broken from the 0.5 refactor. Is there a particular reason why support was dropped?
Brian Marco
@bamarco
@denistakeda I hope this is still the right place to gitter. I completed the rum plugin for posh. I tried doing a pull request to the new repository, but the create pull request button wasn't available (something to do with me being of fork off mpdairy).
Denis Krivosheev
@denistakeda
Hello @bamarco . Yes, I visit this chat from time to time. Checked out the repo, there is no any restrictions on PRs, also there were some PRs already. What does it say to you?
Brian Marco
@bamarco
@denistakeda I figured it out. The open pull request in mpdairy's repository was interferring in some way. I closed that pr and put one in at your repository.
Paul Brown
@PaulBrownMagic
I'm trying to use Posh (posh.reagent & v "0.5.8") and although my transactions using posh/transact! and queries with posh/q or posh/pull are working fine my component's aren't updating, although they were when I was pulling that data out of an r/atom. There's some complexity to the components, with one pulling data and a grandchild through a defmulti doing the transact. How would I go about checking if my components are registered and debugging the lack of update?
Paul Brown
@PaulBrownMagic

Got it. It's with type 2 components. I had them in the form:

(defn edit-name
  [conn n]
  (let [form-value (r/atom name)
        peep @(p/pull conn '[*] n)
        pname (:name peep)]
    (fn [conn n]
      [:div
       [:label (str "Name " pname ": ")]
       [:input
        {:type "text"
         :value @form-value
         :on-change #(reset! form-value (-> % .-target .-value))
         :on-blur #(p/transact! conn
                                [[:db/retract n :name pname]
                                 [:db/add n :name @form-value]])}]])))

But the posh pull there needs to be inside the returned function, like so:

(defn edit-name
  [conn n]
  (let [form-value (r/atom name)]
    (fn [conn n]
      (let [peep @(p/pull conn '[*] n)
            pname (:name peep)]
        [:div
         [:label (str "Name " pname ": ")]
         [:input
          {:type "text"
           :value @form-value
           :on-change #(reset! form-value (-> % .-target .-value))
           :on-blur #(p/transact! conn
                                  [[:db/retract n :name pname]
                                   [:db/add n :name @form-value]])}]]))))
Paul Brown
@PaulBrownMagic
Although if the editing form is repeated that input value isn't updated...
Which I imagine is because the atom is assigned outside of it again...
David Strawn
@strontian
Hi all - I'm wondering if anyone has used posh from vanilla js, or insight into whether it's possible?
Denis Krivosheev
@denistakeda
Hello @strontian . Never tried it, but I don't see any reason why it shouldn't. Please tell us if you run into some issues.