om

Please ask the channel first, not @dnolen directly!
2017-06-17T00:33:03.847752Z

Anyone run into issues where cljs advanced compilation seems to be stripping static methods like (query [_] ... off of any om components?

matthavener 2017-06-17T00:41:00.882059Z

@bnoguchi I've seen issues with advanced compilation messing with (implements? IQuery ...)

matthavener 2017-06-18T02:03:53.274665Z

Awesome, glad I caught yours 🙂 It took me nearly 2 days to debug that

2017-06-17T00:44:57.899305Z

matthavener: Do you recall what adjustments fixed the issue?

matthavener 2017-06-17T00:47:40.910974Z

if you require the om.next namespace in the JVM and then call the cljs compiler it causes the issue

matthavener 2017-06-17T00:47:47.911438Z

if you're using lein cljsbuild or something you should be fine

2017-06-17T03:04:53.380228Z

That was it, thanks. I was trying to perform advanced compile with figwheel after repl loaded

naomarik 2017-06-17T06:29:55.899513Z

uwo: I’ve made something using nothing but reagent then another app using re-frame/reagent and the latter was a lot easier to reason about. Everything works very well, the documentation on re-frame is extremely comprehensive and I’ve been able to mold my frontend to whatever I want and I’m extremely productive. The only thing that I’ve had annoyances with is dealing with complex relationships of normalized data, doing joins manually by filtering maps/vectors in subscriptions. I’m looking into re-posh now which seems to solve this.

matan 2017-06-17T14:17:37.099089Z

@tony.kay I'm looking to choose between the two, are you implying there that om.next docs are in better shape than reagent?

matan 2017-06-17T14:18:47.102651Z

@tony.kay I'm not sure I fully fathom what the role of https://github.com/awkay/untangled/blob/develop/GettingStarted.adoc is, what problem it solves in om.next which I should probably be aware (or beware) of. Or is it just a full getting-started for om.next?

matan 2017-06-17T14:19:28.104779Z

Kind of awkward there's no lein new bootstrap command for creating an empty om.next project .... or I've just not stumbled upon one.

matan 2017-06-17T14:20:36.108449Z

Many thanks for any comments!

claudiu 2017-06-17T14:23:14.116697Z

think it’s getting started for untangled, it’s built on top of om-next but it’s a bit different in some ways 🙂

matan 2017-06-17T14:33:14.149349Z

@claudio mmm I see

matan 2017-06-17T14:33:54.151369Z

It is always a bit unnerving to see a library solving something about a framework that is new itself 😉 makes you wonder about om.next

claudiu 2017-06-17T14:41:21.176019Z

@matan kinda makes total sense in the case of om-next.

claudiu 2017-06-17T14:41:54.177851Z

since it’s insanely flexible, there’s also a lot of room for you to improve and go in one direction or another

matan 2017-06-17T14:41:56.177982Z

all ears

claudiu 2017-06-17T14:42:53.181289Z

untangled keeps the state as a map (as in om-next default) while om-next allows you to keep it as datascript or any other storage.

claudiu 2017-06-17T14:44:22.186121Z

it also has a parser for reads, so no logic in the readparser, all the loading data logic is done by mutations

claudiu 2017-06-17T14:45:39.190281Z

a neat thing it seems to have is that you can define your initial state in the component, and the app-state can be generated.

claudiu 2017-06-17T14:46:42.193689Z

you also get a lot of utility functions 🙂

claudiu 2017-06-17T14:47:27.196203Z

moved to om-next from untangled so that I can understand things better, but now back with untangled since I was basically on the path to writing my own untangled :))

➕ 3
matan 2017-06-17T14:48:19.198986Z

But then, this implies a very lengthy learning curve, om-next → untangled, just to reach some form of productivity, doesn't it?

matan 2017-06-17T14:49:01.201102Z

Also doesn't it kind of imply some bad design choices were made in om.next itself?

claudiu 2017-06-17T14:51:23.209141Z

om-next seems to be scheleton for doing your own framework on top of it by design. You get the benefit of a lot of flexibility.

👍 2
claudiu 2017-06-17T14:51:48.210567Z

think untangled with it’s awesome documentation makes it relatively easy to reach a form of productiveness.

claudiu 2017-06-17T14:53:56.217334Z

I want server side rendering and code-splitting for my project.

claudiu 2017-06-17T14:55:35.223176Z

Could not find any approach of doing this documented online, for om-next or untangled.

matan 2017-06-17T14:58:21.232385Z

sounds like a problem

matan 2017-06-17T14:58:35.233181Z

The untangled home page says: > We consider simplicity an objective measurement: Minimal complexity. Easy and hard are relative terms (e.g. German might be easy for you and hard for me). We derive this standpoint both from our collective experience and from Rich Hickey's wonderful expression of it in his talk Simple Made Easy. Hard is something you can address on a personal or team level through training and time. Complexity is, well, complex! Looking at problems from different angles can often reveal simplifications, but eventually you'll arrive at the simplest possible solution (yet found). To us, hard is about the ability to reason. It is about not knowing what happens because of out-of-order execution. It is about having to write and understand dependency injection for every artifact in a system. It's about work and thought that just gets in the way of solving your problem.

matan 2017-06-17T14:58:46.233743Z

No idea what he's trying to say there, quite horribly written if I may say so.

claudiu 2017-06-17T15:02:52.250011Z

to me it’s like: om-next & untangled … are harder to understand when getting started, you need to put in a bit more work until you get productive, but then you’re code is very easy to reason about.

matan 2017-06-17T15:03:13.251357Z

Yeah I know, just horribly confusingly articulated there ..

matan 2017-06-17T15:03:43.253239Z

Going back, sounds like you are stuck with that ― > Could not find any approach of doing this documented online, for om-next or untangled.

claudiu 2017-06-17T15:05:38.260321Z

yep 😄 working on it now, and as soon as I figure it out will share. Most people seem to be doing frontend only apps.

claudiu 2017-06-17T15:07:15.265547Z

Om-next works, and so does untangled. Just trying to find a nice approach to reuse the frontend logic on backend.

matan 2017-06-17T15:07:33.266578Z

mmmmm

claudiu 2017-06-17T15:09:08.271636Z

have you seen tony kay’s tutorial videos ?

matan 2017-06-17T15:09:14.271931Z

not yet

tony.kay 2017-06-17T15:43:45.394920Z

@matan Thanks for the feedback. I agree the website is too wordy, but just have not gotten around to fixing it. Also, you could be a bit nicer in your criticism. Perhaps a positive suggestion. With regard to the GettingStarted guide: Om Next is a library of building block, which has been stated here on multiple occasions. It does take some time and effort to plug in all of the pieces that are needed. Untangled was started as a separate effort about the time Om Next came out. We decided to use Om Next as the underpinnings because it fit very well with the direction we were headed. Untangled makes many of the decisions you’d have to make when using Om Next, and the getting started guide is an example of what Om Next can look like once you’ve added those decisions on top of it.

tony.kay 2017-06-20T01:54:14.782885Z

which will be welcome

tony.kay 2017-06-17T15:45:53.402544Z

The lein template is not being maintained. Clone untangled-template instead. I have limited time, and maintaining a lein template bring no real benefits, but does require additional effort. I decided not to keep putting effort there until other more important things are done. Clone is just as easy.

👍 1
tony.kay 2017-06-17T15:52:13.425084Z

With regard to evaluating what to use: There is absolutely no substitute for experience and actually getting your hands dirty. You can build anything with any of these things. Do some work. Write some code. List out the common things you struggle with in development, and how each of them will help you reduce complexity and address those issues.

matan 2017-06-17T16:48:58.633684Z

tony.kay: agreed. apologies.

matan 2017-06-17T16:49:58.637390Z

didn't realize the authors are here, so was speaking freely, but I didn't mean it to sound like that

matan 2017-06-17T16:54:50.654468Z

@tony.kay rest assured you have my admiration for maintaining such a complicated library, it was not meant to sound like feedback, just a stupid developer ephemeral rant 😭

tony.kay 2017-06-17T16:56:54.662118Z

No worries…but better to rant in a PM 🙂

tony.kay 2017-06-17T16:58:21.667289Z

It isn’t all that complicated 😉 That’s the point 😄 It just has a lot of parts, all simple 😜

matan 2017-06-17T17:57:23.878008Z

Right!

matan 2017-06-17T17:58:10.880638Z

I take it upon myself that if I learn om.next and then untangled, I would PR to improve the website

pedroteixeira 2017-06-17T23:38:07.911745Z

Are there any examples with server parser doing async reads? I'm experimenting with some parser read responses to accept channels in the :value response.. currently doing the manually a (go-loop to <! all before callback - not sure if someone else thought about this, perhaps Om could support readers or mutations returning {:channel } to do the async/<!