ldnclj

Find us on #clojure-uk
practicalli-john 2016-02-10T00:32:11.000428Z

@progzilla: I run a monthly Clojure workshop at http://hackthetower.co.uk. There is one this Saturday. Its more informal that the ClojureBridge event, anyone is welcome

practicalli-john 2016-02-10T00:33:47.000429Z

@agile_geek: I created a home page for the ClojureBridge London event http://clojurebridgelondon.github.io/. It includes a draft schedule, which should be agreed on during the teacher training session Wednesday night. Thanks

agile_geek 2016-02-10T08:44:03.000430Z

Morning.

agile_geek 2016-02-10T08:44:24.000431Z

@jr0cket: cheers John. I'm still chasing sponsors

2016-02-10T08:54:16.000432Z

morning.

thomas 2016-02-10T09:05:22.000433Z

morning

malcolmsparks 2016-02-10T10:51:58.000434Z

my Om Next article is coming out at lunchtime, I have a few opinions - many people are going to find it a frustrating learning curve

malcolmsparks 2016-02-10T10:52:07.000435Z

(I did)

agile_geek 2016-02-10T10:55:59.000436Z

I love working on client sites when the client is completely an*l about security...not only do I have to jump thru hoops of flame to even get onto the public wifi onsite it drops out so badly I end up using my phone hotspot most of the time!

agile_geek 2016-02-10T10:57:07.000437Z

@malcolmsparks: I've just started on that 'journey' myself so looking forward to seeing what you think/found.

malcolmsparks 2016-02-10T10:58:24.000438Z

currently my biggest bug-bear is composing query expressions - I get that each component contributes its own piece, just can't see how the whole thing fits together in a hierarchy of components - a pretty basic thing I can't grok - there's not much documentation yet (hence my blog article)

malcolmsparks 2016-02-10T10:59:07.000439Z

but the big thing Om Next has (in my view, this is a killer feature) is efficient server sync of state. I think that it will make certain types of app a lot easier than re-frame

malcolmsparks 2016-02-10T10:59:16.000440Z

(once you get up the Om Next slope itself of course)

malcolmsparks 2016-02-10T10:59:29.000441Z

(my article is on server sync btw.)

malcolmsparks 2016-02-10T10:59:46.000442Z

actually, here it is: https://blog.juxt.pro/posts/course-notes-2.html?accessid=MagicAccessHack

malcolmsparks 2016-02-10T11:00:07.000444Z

if anyone has any suggested edits before 12.30 today I'd much appreciated them!

malcolmsparks 2016-02-10T11:00:30.000445Z

and yes, that MagicAccessHack works across the whole site ๐Ÿ˜‰

2016-02-10T11:04:32.000446Z

@malcolmsparks: /hvae/have/s

2016-02-10T11:04:53.000447Z

Last paragraph of Day 2.

mccraigmccraig 2016-02-10T11:06:53.000448Z

@malcolmsparks: is there any reason such efficient sync couldn't be re-cast as a lib to get along with re-frame ?

malcolmsparks 2016-02-10T11:08:12.000449Z

I guess not

malcolmsparks 2016-02-10T11:09:00.000450Z

With re-frame you have more control over the state. Each event that causes a state transition in the app-state could be routed to a remote server to cause the same update to happen there

2016-02-10T11:10:45.000451Z

@malcolmsparks: great post. I like the Jeeves analogy, and the post has removed some of my trepidation in trying Om Next; Iโ€™m currently increasing my expose to Re-frame as my initial attempt with Om failed due to learning curve of CLJS + Om + Lein configuration needed etc.

malcolmsparks 2016-02-10T11:11:55.000452Z

thanks @paulspencerwilliams , typo fixed

malcolmsparks 2016-02-10T11:13:08.000453Z

we have a project update coming out soon that provides a full cljs+sscomp dev env powered by a single build.boot

malcolmsparks 2016-02-10T11:13:19.000454Z

getting the tooling fixed is a big win

2016-02-10T11:23:13.000455Z

agreed

mccraigmccraig 2016-02-10T11:25:10.000456Z

ha, so really om/next ditches REST... thinking in terms of my current app, send could as easily be implemented over the websocket my app always has open

malcolmsparks 2016-02-10T12:26:48.000457Z

yes, but websockets ๐Ÿ˜ž

malcolmsparks 2016-02-10T12:27:31.000458Z

the point is to reduce all the various parts of your app all calling REST-based services

malcolmsparks 2016-02-10T12:27:53.000459Z

but I think this calls for additional aggregation services on the back-end, so more REST rather than less ๐Ÿ˜‰

malcolmsparks 2016-02-10T12:33:26.000460Z

to clarify, these Om Next Remotes (or state aggregation services for re-frame) all next to be quick and responsive, and chances are they'll have to make lots of calls out to other services (micro-services or not) - so HTTP conditional requests and cacheing and things like that are going to become more relevant

malcolmsparks 2016-02-10T12:34:10.000461Z

and clojure has a sweet-spot for cacheing, because of hash and immutable data structures in general - really good to produce e-tags for (the same argument why Om is faster than React, but at the backend)

mccraigmccraig 2016-02-10T12:36:18.000462Z

ah, maybe i'm misunderstanding - i thought the om/next remotes were far coarser than a typical REST endpoint would be, encompassing whole graphs of objects, and therefore likely less cacheable...

mccraigmccraig 2016-02-10T12:37:15.000463Z

but then i guess if the remote is an aggregation of further REST services, then e-tags etc would be important for those services

glenjamin 2016-02-10T13:03:44.000464Z

my understanding is to decouple your components from your backend via query fragments, so youโ€™re free to fulfil them via REST or whatever

glenjamin 2016-02-10T13:04:21.000465Z

iโ€™ve worked on React apps with a working set small enough to just keep it in the browser and continually sync via websocket

glenjamin 2016-02-10T13:09:21.000466Z

Om next is similar in flow to https://github.com/Day8/re-frame#subscribe - but with that declarative query layer, and an interpreter for it