Bore da
@pupeno: not looked at Reagent let alone Reframe - is Secretary used for routing?
agile_geek: yes, secretary is for routing. I’ll replace it with silk, but the integration will be similar.
@pupeno: is that routing client side? Not at all familiar with paradigm?
Yes, it’s routing client side.
I was really sold on the importance of this by EmberJS: the URL is the work-horse of the web. You should be able to copy the URL from one browser to another and see the same page.
So as you go from place to place in a single-page-app (which is a bit of a miss-normer here), you update the URL to reflect the content.
Otherwise, your app has the same horrible behaviour we all hated in Flash: impossible to link.
Cool. So I see Om using core.async a lot to decouple domain from rendering. Is it similar in Reframe/Reagent?
Never used Om, but it does achieve domain/rendering decoupling by using the reactive pattern.
So I have been stuck on the Om intermediate tutorial for literally days…unable to get it to work. I want to like Om, but I think I have to accept it’s just beyond my tiny brain to comprehend. Might shift focus to Reagent.
@agile_geek: reagent is deffo simpler to get started with
@mccraigmccraig: I am just struggling to get tutorial to do anything let alone understand what a cursor is! I’m sure it’s very clever but I don’t know JS & I don’t have a PhD in CS so maybe this is why I’m fighting it.
@agile_geek: behind the cursor type is a hierarchical map structure and a path to the current focus from the root of the hierarchy... when you get from it, it keeps the same root, but adds to the path
there's a bunch of stuff for consistent views during transactions etc, but that's the core of the concept
@mccraigmccraig: I’m sure that makes sense to someone but not me I’m afraid
I’m a COBOL programmer who can just about write Java remember 😉
:simple_smile: e.g. consider a cursor {:root {:foo {:bar 20}} :path []} ... this is the backing structure behind the map protocol impls
(get-in X [:foo :bar]) => 20
(get-in X [:foo]) => Cursor[{:root {:foo {:bar 20}} :path [:foo]}
I think this is one of the reasons @jonpither can relax about the ‘unwashed hordes’ of Java devs desending on Clojure and ‘ruining it’, they won’t understand it enough to get anything working!
one of the things i really didn't like about om was that cursors behave like maps, except for when they don't, and the abstraction leaks quite often
@mccraigmccraig: I kind of think I almost get it. It behaves a little bit (conceptually) like a cursor on a database table?
@agile_geek: perhaps more like an (unmaterialized) view on a db table... which looks like a table, but actually transforms a query to underlying tables
the cursor looks like map, but plucks data from some point in the backing hierarchy of maps
though thinking about it, the db cursor analogy is equally valid
@agile_geek: btw does COBOL have closures ?
@mccraigmccraig: OK I think I’ve got it. Thanks. I still can’t get the code in the intermediate tutorial running but thanks anyway.
Haven’t written COBOL since 1996 & I’m it could render text to a green screen and had paragraphs and PERFORM statements for subroutines and that was it! They invented OO COBOL but I never used it - Frankenstein’s Monster!
@agile_geek: wot no functional COBOL with monadic IO ?
😀
@agile_geek: I've recently been getting started reasonably well with om, what kinds of problems are you having?
Although I will say that I might be overusing async chans
(who knows)
@jamiei: just basic inability to understand. I’m a bit thick
I doubt it, I left out the intermediate tutorial because of the datomic use
I preferred using my own backend and writing apps over the top of that
Actually although I couldn’t write Datomic syntax I could understand it.
Yeah
Are you new to datomic, edn and some of the server side bits used?
Haven’t spent time on Datomic but edn and server stuff is bread and butter
I’d like to have an event like the Dojo but instead of having a set of problems everybody works on, people can bring their own problems and pair to solve them. More focussed on working on ongoing tasks, even work.
@pupeno: maybe we could do that in the Project Clojure Dojo between projects?
Maybe… I’m generally open to that at any Clojure-related event, working on my stuff or other’s. I’m at a point where I could learn quite a bit by paring.
And by maybe I mean, yes! I’m game!
@pupeno: for really selfish reasons (cos I have no chance of doing any Clojure in work) I wanted to build something substantial to learn but maybe we can pair on stuff for a few meetings between projects?
I’ll be happy to.