@dominic

@gb @ev have you played around with observables?

Like pull-streams, it's also about functions and tracking realtime changes, but it's not async so it's not as hard as pull-streams.

@gb
Re: %JrRSpGJzj

@dominic I'm on it -- thanks for the push. (You caught me reading xkcd, so it's not as though I was doing anything too deep.)(Or was I?)

@Mikey
Re: %JrRSpGJzj

here's a really minimal observable implementation i wrote: ahdinosaur/push-stream, in case it's helpful for understanding the core idea (it was for me). it's based heavily on Raynos/geval and Raynos/observ, which are presumably based on dominictarr/observable.

or the more featured observable implementation (also based on observ) we're starting to use in patchbay: mmckegg/mutant. :star2:

@dominic
Re: %JrRSpGJzj

unfortunatly we don't have a cannonical observable implementation. I wanted to use @matt's but I ended up creating https://www.npmjs.com/package/obv for flume, because I needed special handling of once and removing listeners.

But the important thing is getting used to functions that take functions as arguments and functions that return functions! (generally called "higher order functions")

@mixxx
Re: %JrRSpGJzj

There's a bit of mutant observable in patchbay.
Currently really enjoying how it's helping refactor the profile page.

@Matt
Re: %JrRSpGJzj

I would be interested in bringing mutant and obv into alignment. That is if they are not already compatible.

I really like the .once extention and the second arg to obs(..., immediate=boolean).

@dominic
Re: %JrRSpGJzj

@matt that would be awesome - in flume my main perf need is the once path, in both current (immedate=true) and next (immediate=false) modes.

What about in your stuff? you mentioned memory. What would a benchmark look like?