Fork me on GitHub
#untangled
<
2016-08-23
>
erichmond02:08:55

How is untangled coming along?

grzm15:08:20

in my app state, I always see a nil nil key-value pair. Is this normal? Or does it refer to the root object? Or do I have something dangling somewhere? I'm not seeing any warnings in the console, and things appear to be working. Just wondering what that is.

grzm15:08:06

Also don't know if this is an untangled-client specific thing, or an Om thing.

tony.kay15:08:22

Hi all. Back from vacation. I'll be looking at PRs this morning in more detail. Going to do some testing of my own.

grzm15:08:18

@tony.kay Welcome back! Hope you had a restful time 😉

tony.kay15:08:27

@erichmond I think it is coming along quite well. Om seems to get bug fixes as we push the boundaries (often thanks to @anmonteiro ). We're quite happy with it, and there are now a few things out in the commercial space using it.

tony.kay15:08:04

@grzm the nil nil thing is probably an Untangled bug. I've seen it. Have not bothered tracing it down, since it doesn't hurt anything

grzm15:08:38

Cool. I might even get around to looking for it 🙂

tony.kay15:08:28

It is probably part of the merge sequence

tony.kay15:08:30

@jasonjckn I'll give some serious brain cell activity to your PR. I just need to put my brain in gear enough to grok your comments/code.

erichmond15:08:49

@tony.kay thanks for responding. what’s your suggestion on if people should adopt it yet? we’re in a position where we need to crank out an MVP and at this point if things aren’t baked well, we’re going ot have to abandon it for time considerations

erichmond15:08:53

we’re considering this and re-frame

tony.kay16:08:26

@erichmond We've got a product in Beta, and I know of at least one other company that does as well. Reframe is a different animal, aimed only at the UI. Om/Untangled are full-stack stories.

tony.kay16:08:00

I have not tried using Re-frame for anything, so I cannot speak to the relative difficulties in coming up to speed.

erichmond16:08:33

@tony.kay thanks! so if I worked with it today, I could get a simple project working end-to-end?

erichmond16:08:40

promise this is my last question 😄

erichmond16:08:46

thanks for your time / answers

tony.kay16:08:07

@erichmond If you clone Untangled TODOMvc, you'll have a full-stack working solution in about 5 mins

therabidbanana16:08:26

I'm at one of those other companies with a beta product on Untangled - I think it worked out pretty well for us. Overall my only complaints have been learning curve, and @tony.kay has done a pretty great job building up documentation and tutorials

therabidbanana16:08:27

We started with a prototype (week long spike) on a om.next stack that didn't use untangled - we heard about it after we were done with the prototype and realized it solved almost all of the pain points we were fighting during that first week

tony.kay16:08:49

part of the beauty of the solution (mostly Om) is the unified approach. The full-stack story is very nice IMHO

erichmond16:08:04

thanks! we’ll poke around! I was really excited when it was first annoucned

erichmond16:08:07

glad to see it’s still moving

therabidbanana16:08:23

I'm not going to say it's a magic bullet - it's still pretty bleeding edge, but we've been pretty happy with it overall.

tony.kay16:08:15

@erichmond Definitely go through the tutorial, and the getting started videos available from the Untangled website. They'll save you a lot of time, I think.

shaun-mahood16:08:20

@erichmond: from the perspective of a re-frame user, you should be able to get the UI up and running very quickly, and the concepts involved are quite simple and straightforward. The tradeoff is that it really only deas with the UI, and doesn't deal with many of the concerns that Om and untangled are aimed at (nothing graphql-like, nothing for normalizing data, etc). If you are looking for a ui for a more traditional rest based app that is targeting primarily one platform, re-frame is an amazing solution. If the really innovative things in om and untangled are what you need, then re-frame is probably not what you are looking for.

tony.kay17:08:27

untangled-server 0.6.2-SNAPSHOT is on clojars. Includes @cjmurphy app-name feature.

jasonjckn17:08:38

@tony.kay so for my PR, the blockers are (1) you want the items-to-defer as a pure function, is that all?

tony.kay17:08:20

I'd like tests that show it does the right thing in the cases I described (e.g. it currently uses data-ident, which isn't correct)

jasonjckn17:08:59

@tony.kay i'm still pretty fresh to the code base, I can definitely write more tests and make it pure, but that data-ident part that one function passed to distinct-by I need your help

jasonjckn17:08:16

i don't know how to write that little function proper

tony.kay17:08:35

yeah, I've pulled in your code...I'll write a bit and make it clearer

jasonjckn17:08:39

i'll send you more tests in 1-2 hours

tony.kay17:08:05

@jasonjckn if you want to jump on skype or hangouts we could pair on it.

jasonjckn17:08:39

@tony.kay sure when are you free?

jasonjckn17:08:56

@tony.kay i don't think skype or hangouts does virtual desktop (?) i know screenhero does

tony.kay17:08:41

both do shared screen, which is good enough

tony.kay17:08:57

now is good

grzm19:08:28

In untangled, are all mutations sent to the server, even if remote isn't set to true? I'm seeing them show up in the logs.

grzm19:08:32

on the server, that is.

tony.kay20:08:30

no, only those marked remote

tony.kay20:08:48

might be a bug on your end

tony.kay20:08:32

possibly two implementations of the same method?

tony.kay23:08:45

client 0.5.5-SNAPSHOT updated on clojars

tony.kay23:08:03

contains @jasonjckn patch for conflicting queries being improperly merged

tony.kay23:08:18

oh, was that biting you?

grzm23:08:57

nope, just appreciating the work

tony.kay23:08:06

ah, cool 🙂

grzm23:08:29

And I've really learned a lot from your video series. very good stuff.

tony.kay23:08:13

yeah, I'm glad they're coming in handy. I fear the day that IntelliJ changes enough to require me to redo them 😕

grzm23:08:03

I'm still an Emacs user 🙂 Also using Pedestal on the backend instead of untangled server, but they're decoupled enough that it hasn't been an issue.

tony.kay23:08:43

yeah, we have emacs and vim users here, so the project file is set up to work well for any

grzm23:08:10

I've got a demo tomorrow so I'm finishing up what I need to to make that happen. After that I'm working on lazy loading tabs. Not sure how to scope the queries for the tab based on a setting. For example, say the main tab has a list of cars, and when I select one of the cars, the other tab opens up with details of that particular car.

tony.kay23:08:59

The mutation to select a car just has to change the app state to the right state

tony.kay23:08:13

think of the render as a pure function. If the state is right, it will render right

grzm23:08:26

That's what I was thinking. Have to figure out how to get the app state like I need to. Still need more practice doing that.

tony.kay23:08:03

1. put the "selected car" in the right object that renders the car 2. put the "which tab is open" value for showing the tab

grzm23:08:06

Like a singleton in the main tree

tony.kay23:08:37

sometimes a singleton...if it is a single UI element. Tabs are often a single data item that use an ident to switch queries/ui rendering

tony.kay23:08:44

(e.g. union query)

tony.kay23:08:12

there is a cookbook recipe

grzm23:08:16

Right. I was thinking of the singleton for the selected car, independent of the tab. Then the query for the tab would have a link to that singleton

tony.kay23:08:28

I think the cookbook even shows how to hot-load data from the server into the tab

grzm23:08:03

That's the one I'm looking at. Yeah, the lazy loading is good.

tony.kay23:08:23

mmm. more likely the object that represents the view of the car (which might be a singleton) would be updated for a field to point at the right car (which would end up with recursive queries, etc)

grzm23:08:24

You've covered a lot of the bases 🙂

tony.kay23:08:48

it's all the same stuff, but it helps to see it from lots of angles

grzm23:08:49

I'm hoping to get some more blog posts out there as well

tony.kay23:08:00

please do cookbook additions if you want

tony.kay23:08:16

or tutorial additions if you have idea on clarifying

grzm23:08:20

When I have something to add, I definitely will!

tony.kay23:08:36

dev guide also needs love

grzm23:08:56

I'm also interested in the full-stack testing stuff that the Ladderlife people have with Cellophane.

tony.kay23:08:58

blog doesn't hurt...new exposure avenues are nice

tony.kay23:08:14

You know that Untangled has a full-stack testing story, right?

tony.kay23:08:20

the protocol testing stuff

grzm23:08:30

Does it require untangled-server?

tony.kay23:08:38

it is more clever than that

tony.kay23:08:00

but it does exercise both the client and server...just in a CI compatible, non-breaking way

grzm23:08:17

well, that's good to hear 🙂 Maybe this weekend I'll take a look. My backend is pretty well covered. Front-end needs more automated testing.

tony.kay23:08:33

it doesn't test the "rendering" of the UI, but it gets at what you really want: making sure the model interactions are correct all the way through

tony.kay23:08:55

See the talk I gave at Clojure West last year (it was an unsession)

tony.kay23:08:05

not a lot of docs on it, but I explain the concepts there

grzm23:08:08

I was there 🙂

tony.kay23:08:16

oh, right, we met, didn't we?

grzm23:08:17

I'll rewatch it, though

grzm23:08:22

Yup 😉

tony.kay23:08:37

Yeah, I thought your name was familiar

tony.kay23:08:42

sorry...lots of ppl 🙂

grzm23:08:19

And you've been helping lots of us. I didn't expect you to remember me 🙂

grzm23:08:04

Well, back to bug fixing. Thanks again for all you've done. I do appreciate it.

tony.kay23:08:20

hey, yeah. You're welcome.