untangled

NEW CHANNEL: #fulcro
currentoor 2016-07-26T15:38:52.000159Z

We launched our public beta today built using Untangled, gave the framework a shoutout in the comments. https://news.ycombinator.com/item?id=12165682

🦜 2
πŸŽ‰ 3
currentoor 2016-07-26T15:40:34.000160Z

@tony.kay and friends thank you so much for making this modern lisp stack totally accessible!

shaun-mahood 2016-07-26T16:30:32.000161Z

@currentoor: I might be an idiot but I can't seem to get to your site from the hacker news link, found it on google though. Is the entire thing Untangled?

currentoor 2016-07-26T16:32:06.000162Z

@shaun-mahood: oh it's silly that the HN post doesn't link to the actual product, I think one of our marketing people posted it.

currentoor 2016-07-26T16:32:09.000163Z

here's the link https://www.adstage.io/reporting/

currentoor 2016-07-26T16:32:34.000164Z

The entire reporting product is untangled-(client, server, datomic, spec)

currentoor 2016-07-26T16:33:48.000165Z

We originally built the prototype in vanilla Om next. Then started with Untangled in April.

shaun-mahood 2016-07-26T16:36:14.000166Z

@currentoor: Very cool. I'd be very interested in any info you can share about the graphing and dashboards in there, they look excellent.

darrellesh 2016-07-26T16:36:20.000167Z

@currentoor: Congrats!

currentoor 2016-07-26T16:38:19.000168Z

@darrellesh: thanks!

currentoor 2016-07-26T16:39:03.000169Z

@shaun-mahood: I'm happy to answer any questions. We're planning on writing a blog post going over our experiences.

currentoor 2016-07-26T16:40:01.000170Z

we wrote some components to wrap this library http://c3js.org/

currentoor 2016-07-26T16:40:04.000172Z

for the charts

shaun-mahood 2016-07-26T16:41:40.000173Z

@currentoor: Oh cool, was it nice to work with once you wrapped it?

2016-07-26T16:42:12.000174Z

@currentoor: I’d sign up for a free trial to play around if I could! looks fantastic

currentoor 2016-07-26T16:45:27.000175Z

@shaun-mahood: yeah it was pretty straight forward

2016-07-26T16:45:39.000176Z

@currentoor: Are you using d3 for your graphics?

currentoor 2016-07-26T16:46:17.000178Z

we used this to component as the base to build all our other charts

currentoor 2016-07-26T16:46:36.000179Z

@jslavin: we're using C3 which uses D3 under the hood

currentoor 2016-07-26T16:46:50.000180Z

@ethangracer: thanks! We couldn't have done it without you guys!

2016-07-26T16:47:34.000181Z

@currentoor: Great job, we at navis are excited to see others using the libraries

currentoor 2016-07-26T16:48:15.000183Z

@jslavin: thanks!

shaun-mahood 2016-07-26T16:48:55.000184Z

@currentoor: Thanks, looking forward to the blog post. I bet it will be really, really nice to maintain.

2016-07-26T16:50:09.000185Z

@shaun-mahood: it was pretty straightforward to wrap, we used some lifecycle examples that looked very similair to what @tony.kay used for his d3 react component (i think that was posted on the om channel awhile back).

anmonteiro 2016-07-26T16:51:09.000186Z

@currentoor: cool stuff, looks good! I’d love to see those chart components open sourced

anmonteiro 2016-07-26T16:51:17.000187Z

I understand that there might be politics involved, though πŸ™‚

currentoor 2016-07-26T16:52:22.000188Z

@anmonteiro: @kenbier built them, maybe he convince our CTO

2016-07-26T16:53:15.000191Z

@anmonteiro: i cant make any promises, but i can ask πŸ™‚

anmonteiro 2016-07-26T16:53:48.000192Z

πŸ™‚

currentoor 2016-07-26T16:54:06.000193Z

@paul4nandez: it's just some syntactic sugar around om.next/defui https://github.com/currentoor/untangled-starter/blob/master/src/untangled_starter/aum.cljc

anmonteiro 2016-07-26T16:54:35.000195Z

Just rooting for a wider adoption of Om Next. Pretty sure everything we can get out there to feed the (still tiny) ecosystem is very welcome

currentoor 2016-07-26T16:55:19.000196Z

yeah that would be cool, we certainly had more fun with this stack than any other we've worked with

shaun-mahood 2016-07-26T16:56:17.000197Z

Out of curiosity, was this the first Clojure project you have undertaken at the company, or was there already some Clojure traction?

2016-07-26T16:57:24.000198Z

We already had some Clojure parts in our stack (for example the underlying metrics service we're grabbing most of our data from)

2016-07-26T16:57:38.000199Z

First full-stack Clojure project here though

shaun-mahood 2016-07-26T16:58:40.000202Z

Very cool, I love that there are companies willing to go all-in like this.

2016-07-26T16:59:46.000203Z

Well, it certainly still took a lot of pushing from @currentoor to get us to try it. πŸ™‚

currentoor 2016-07-26T17:00:12.000204Z

@shaun-mahood: yeah i had to sell my soul and take a second mortgage on it get this project approved!

πŸ‘ 1
πŸ˜† 2
tony.kay 2016-07-26T17:00:21.000206Z

I love that you guys pushed a public commercial product beta out in 4 months. That speaks volumes I think.

5
🦜 6
currentoor 2016-07-26T17:00:46.000207Z

@tony.kay: thanks!

2016-07-26T17:01:54.000208Z

Initial traction was gained by getting a commitment to let us try a week long spike and see how far we could get. We were able to get a workable enough demo that it seemed like a viable solution

tony.kay 2016-07-26T17:05:22.000209Z

I think you guys should announce on the #C06DT2YSY channel as well. I think it could help the general crowd of om-next interested users to raise an eyebrow towards Untangled as a simplification for getting going.

tony.kay 2016-07-26T17:06:20.000210Z

I think you've beat everyone else to the punch on having a commercial om-next full stack app...including us πŸ˜•

tony.kay 2016-07-26T17:06:25.000211Z

πŸ˜‰

tony.kay 2016-07-26T17:06:54.000212Z

(actually we do have an internal beta going on with real clients, but it isn't public facing)

2016-07-26T17:08:22.000213Z

Yeah, we were in a private "alpha" for a month or so

currentoor 2016-07-26T20:23:30.000214Z

Is there a way to query for all the entities of a particular ident? Like [:dashboard/by-id *] vs [:dashboard/by-id 1]?

tony.kay 2016-07-26T20:27:06.000215Z

[:dashboard/by-id]

tony.kay 2016-07-26T20:27:11.000216Z

will give you the entire map

tony.kay 2016-07-26T20:27:15.000217Z

(table)

tony.kay 2016-07-26T20:27:31.000218Z

if I understand your question correctly

tony.kay 2016-07-26T20:28:07.000219Z

then just use vals

tony.kay 2016-07-26T20:28:26.000220Z

@currentoor: ^^^^

currentoor 2016-07-26T20:30:24.000221Z

@tony.kay: that'll work in a query?

currentoor 2016-07-26T20:30:33.000222Z

cool that makes sense i suppose

2016-07-26T21:18:53.000223Z

@currentoor: that’s one of the cool untangled nuggets β€” if a keyword is not part of a join, we assume it’s at the top of the app state and we return whatever is at that key

anmonteiro 2016-07-26T21:19:59.000224Z

FWIW, it’s what Om will do too if you call db->tree, which is what Untangled uses, IIRC

anmonteiro 2016-07-26T21:20:08.000225Z

correct me if I’m mistaken

2016-07-26T21:21:04.000226Z

interesting, we treat it as a separate case in our custom read untangled.client.impl.om-plumbing/read-local, but maybe we don’t have to

anmonteiro 2016-07-26T21:21:31.000227Z

looking

anmonteiro 2016-07-26T21:28:44.000229Z

@ethangracer:

cljs.user> (om/db->tree [:foo] {:foo 42} {:foo 42})
{:foo 42}

anmonteiro 2016-07-26T21:29:10.000230Z

you treat it differently because the parser dispatches on top-level keys so you don’t really have the [:foo] query

anmonteiro 2016-07-26T21:29:23.000231Z

so what untangled does def makes sense

currentoor 2016-07-26T21:39:08.000232Z

@ethangracer: that's handy

2016-07-26T21:54:42.000233Z

@anmonteiro: right, I forgot the parser strips the key from the query. makes sense