Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 14:09
    rjgotten edited #5463
  • 13:57
    rjgotten edited #5463
  • 13:48
    rjgotten edited #5463
  • 13:45
    rjgotten edited #5463
  • 12:20
    rjgotten edited #5463
  • 09:42
    rjgotten edited #5463
  • 09:04
    rjgotten opened #5463
  • Jan 26 16:06
    chamsou123 starred canjs/canjs
  • Jan 25 20:18

    greenkeeper[bot] on @octokit

    (compare)

  • Jan 25 20:16

    greenkeeper[bot] on @octokit

    chore(package): update @octokit… (compare)

  • Jan 24 23:05
    greenkeeper[bot] commented #5422
  • Jan 24 23:05

    greenkeeper[bot] on @feathersjs

    chore(package): update @feather… (compare)

  • Jan 24 23:05
    greenkeeper[bot] commented #5401
  • Jan 24 23:05

    greenkeeper[bot] on @feathersjs

    chore(package): update @feather… (compare)

  • Jan 24 22:58

    greenkeeper[bot] on @octokit

    (compare)

  • Jan 24 22:57

    greenkeeper[bot] on @octokit

    chore(package): update @octokit… (compare)

  • Jan 24 20:42
    bitsnaps starred canjs/canjs
  • Jan 24 10:50
    chasenlehara opened #5462
  • Jan 24 10:48

    chasenlehara on chasenlehara-patch-1

    Upgrade to can-queues@1.3.2 (compare)

  • Jan 24 10:41

    chasenlehara on can-simple-dom-1.7.1

    (compare)

Viktor Busko
@Lighttree
So the benefit is in encapsulation of property behavior in one place right ?
Right - putting all the logic for each property within its own property definition is a big improvement
this is a trivial example... but in larger apps, you can end up with the definition for a property in many places across many different files
it's really easy for this pattern to snowball into a huge problem that makes your code very difficult to change without breaking something else
Viktor Busko
@Lighttree
Ok thanks, I think I got the idea.
Kevin Phillips
@phillipskevin
streams are a good solution to any problem like this
but they're pretty hard to learn
the value behavior is a lot simpler and solves most of the same problems
Frank Lemanschik
@frank-dspeed
why do you think streams are hard to learn
they are a simple observe able
that emit values
Kevin Phillips
@phillipskevin
because I've tried to teach them to people
and people find them confusing
Frank Lemanschik
@frank-dspeed
hmmm i like teaching streams
i am at present preparing a biger series of streaming tutorials maybe your interrested in them will send you url once released
<form>
    <input class="x"> + <input class="y"> = <span class="result"></span>
</form>
Using most.js to make it reactive:
import { fromEvent, combine } from 'most'

const xInput = document.querySelector('input.x')
const yInput = document.querySelector('input.y')
const resultNode = document.querySelector('.result')

const add = (x, y) => x + y

const toNumber = e => Number(e.target.value)

const renderResult = result => {
    resultNode.textContent = result
}

export const main = () => {
    // x represents the current value of xInput
    const x = fromEvent('input', xInput).map(toNumber)

    // y represents the current value of yInput
    const y = fromEvent('input', yInput).map(toNumber)

    // result is the live current value of adding x and y
    const result = combine(add, x, y)

    // Observe the result value by rendering it to the resultNode
    result.observe(renderResult)
}
ups
with canjs all this is even much more easy
Kevin Phillips
@phillipskevin
I like teaching streams too
Frank Lemanschik
@frank-dspeed
yaa stream love
:D
i think they are the most logic for long running processes
Kevin Phillips
@phillipskevin
but if you're teaching canjs and you need to solve the one problem mentioned above (resetting city when state changes), then having to teach all of streams is a bit of overkill
Frank Lemanschik
@frank-dspeed
and the clean up is like magic
so out of memory managment view this is the holy gral
for any resource managment
did you use most.js ?
or only kefir if so look into most js it has magic stuff like multicast streams
i design whole apps with it i will even rewrite canjs to use only that :)
Thomas Sieverding
@Bajix
I bet it would be easy to make most.js compatible with can-streams
Frank Lemanschik
@frank-dspeed
but thats hard work i first start with can-quee
as a stream is a queue and most has shedulers
its all a dream
in some month a canjs app could be a monadic self healing stream
the ecosystem of most is growing to be the defacto framework of frameworks
Kevin Phillips
@phillipskevin
I usually use RxJS
Frank Lemanschik
@frank-dspeed
look into most you will laught about rhx
rx
see the benchmark but the ecosystem is also the most amazing
its also nativ promise compatible
so works for any canjs value ;)
here the amazing docs
andre-cgn
@andre-cgn
hey all. does anyone use canjs & webpack? i am having problems with the connect behaviours :/
Frank Lemanschik
@frank-dspeed
what has webpack todo with your connect behaviors?
Kevin Phillips
@phillipskevin
we have an example setup using canjs with webpack: https://github.com/canjs/webpack-example
Jeroen Cornelissen
@jeroencornelissen
Schermafbeelding 2018-02-15 om 16.52.46.png
Any idea why I keep getting this error RangeError: Maximum call stack size exceeded. It’s something CanJS internal.