keechma

Keechma stack. Mention @U050986L9 or @U2J1PHYNM if you have any questions
urbank 2017-05-31T09:43:47.390527Z

I'm getting goog.require could not find: keechma.ui_component. Any idea what the problem might be?

mihaelkonjevic 2017-05-31T09:45:14.411080Z

@urbank do you have your code somewhere? how does your require look like?

urbank 2017-05-31T09:46:11.425386Z

it's [keechma.ui-component :as ui]

urbank 2017-05-31T09:46:24.428458Z

in project.clj [keechma "0.2.0-SNAPSHOT-11"]

mihaelkonjevic 2017-05-31T09:46:28.429410Z

hm, that should work

urbank 2017-05-31T09:46:52.435718Z

[org.clojure/clojure "1.9.0-alpha15"] [org.clojure/clojurescript "1.9.521"]

urbank 2017-05-31T09:47:08.439538Z

maybe clojure/clojurescript version is the problem?

mihaelkonjevic 2017-05-31T09:47:20.442395Z

Iโ€™m working on the project right now that has the same deps and it works

mihaelkonjevic 2017-05-31T09:47:58.451809Z

can you try to restart lein?

urbank 2017-05-31T09:57:14.583876Z

Ha... that helped. Should have tried that in the first place. Thanks!

mihaelkonjevic 2017-05-31T09:57:22.585833Z

no problem ๐Ÿ™‚

Geoffrey Gaillard 2017-05-31T10:18:47.881140Z

Hi @mihaelkonjevic ! Just read the Keechma doc and I was wondering if I could use controllers inside an existing Re-Frame app. The pipeline approach is exactly what I need and I started some weeks ago to implement something similar (and buggy) It would help me a lot to use Keechma's pipelines in my existing app

mihaelkonjevic 2017-05-31T10:24:30.953769Z

hm, Iโ€™m not sure if it would work. Maybe you could use pipelines without controllers. They are not too coupled. Controller is needed only for the sideffects, but you could probably implement your own sideffects (by implementing the correct protocol) and then pass in something that makes sense for re-frame app

mihaelkonjevic 2017-05-31T10:25:05.961132Z

so instead of built in sideffects, you would use re-frame based implementation

mihaelkonjevic 2017-05-31T10:45:42.210813Z

@ggaillard ping me if you need any help with that

Geoffrey Gaillard 2017-05-31T10:48:01.239263Z

I'll look at it, thank you ๐Ÿ™‚

urbank 2017-05-31T12:07:12.208465Z

Uncaught Error: Can't resolve the subscription with key: :todos

urbank 2017-05-31T12:10:16.249146Z

god damn it

urbank 2017-05-31T12:10:22.250487Z

I found it

urbank 2017-05-31T12:11:04.259894Z

I had :subscriptions-deps instead of :subscription-deps ... plural instead of singular

urbank 2017-05-31T12:17:39.350909Z

It's times like this that I miss type-checking ๐Ÿ™‚

mihaelkonjevic 2017-05-31T12:22:42.422730Z

I have a plan to add spec to everything, that should help

urbank 2017-05-31T12:26:44.482531Z

Yeah, that would be grand ๐Ÿ™‚

mihaelkonjevic 2017-05-31T12:31:22.553067Z

hereโ€™s a short video about the dataloader, full blog post coming next week - https://youtu.be/dZaY1kZwpmw

urbank 2017-05-31T12:38:56.671774Z

cool... man I'd like to be able to convince my coworkers to go with something like GraphQL

mihaelkonjevic 2017-05-31T12:39:07.674780Z

yeah, itโ€™s great ๐Ÿ™‚

mihaelkonjevic 2017-05-31T12:40:43.700857Z

But the beauty of dataloader is that you can use any backend with it. GraphQL is just a great fit because you can combine queries

urbank 2017-05-31T17:22:48.129945Z

Where exactly does entitydb hook into keechma? What needs to be swapped to exchange it for something else?

mihaelkonjevic 2017-05-31T18:04:39.062839Z

EntityDB doesnโ€™t really have any hooks into keechma

mihaelkonjevic 2017-05-31T18:04:52.067548Z

EntityDB is implemented as a set of pure functions

mihaelkonjevic 2017-05-31T18:04:58.069586Z

that work on a map

mihaelkonjevic 2017-05-31T18:05:14.075508Z

so you can use EntityDB without Keechma and vice versa

mihaelkonjevic 2017-05-31T18:06:57.114030Z

The only thing that Keechma expects is an reagent atom it has control over

mihaelkonjevic 2017-05-31T18:07:13.119784Z

because Keechma stores some internal state in that atom (like which controllers are running)

mihaelkonjevic 2017-05-31T18:08:02.138267Z

but that atom is exposed on the map that is returned from the keechma.app-state/start! function

mihaelkonjevic 2017-05-31T18:08:25.146556Z

so if you need to do something with that atom, itโ€™s possible

mihaelkonjevic 2017-05-31T18:08:31.149150Z

each controller has full access to that atom too

urbank 2017-05-31T18:16:16.318218Z

Ok cool, I just thought there was something more because there an :entity-db key in the state

mihaelkonjevic 2017-05-31T18:17:55.353870Z

yeah, it just creates a basic structure here https://github.com/keechma/keechma/blob/master/src/keechma/app_state.cljs#L90

mihaelkonjevic 2017-05-31T18:18:07.357838Z

what do you plan to use?

urbank 2017-05-31T18:24:18.493992Z

@mihaelkonjevic Not sure, probably entity-db eventually, but want to do some experimenting with a more specific solution for my particular data

mihaelkonjevic 2017-05-31T18:36:55.778479Z

cool, if you make some cool integration, make sure you let me know ๐Ÿ™‚

urbank 2017-05-31T18:45:58.977652Z

@mihaelkonjevic Will do! ๐Ÿ™‚