Fork me on GitHub
#ldnclj
<
2015-08-06
>
agile_geek06:08:58

@pupeno: not looked at Reagent let alone Reframe - is Secretary used for routing?

pupeno08:08:15

agile_geek: yes, secretary is for routing. I’ll replace it with silk, but the integration will be similar.

agile_geek08:08:17

@pupeno: is that routing client side? Not at all familiar with paradigm?

pupeno08:08:31

Yes, it’s routing client side.

pupeno08:08:58

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.

pupeno08:08:27

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.

pupeno08:08:45

Otherwise, your app has the same horrible behaviour we all hated in Flash: impossible to link.

agile_geek08:08:24

Cool. So I see Om using core.async a lot to decouple domain from rendering. Is it similar in Reframe/Reagent?

pupeno08:08:57

Never used Om, but it does achieve domain/rendering decoupling by using the reactive pattern.

agile_geek12:08:15

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.

mccraigmccraig12:08:33

@agile_geek: reagent is deffo simpler to get started with

agile_geek12:08:54

@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.

mccraigmccraig12:08:28

@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

mccraigmccraig12:08:52

there's a bunch of stuff for consistent views during transactions etc, but that's the core of the concept

agile_geek12:08:45

@mccraigmccraig: I’m sure that makes sense to someone but not me I’m afraid

agile_geek12:08:42

I’m a COBOL programmer who can just about write Java remember 😉

mccraigmccraig12:08:22

simple_smile e.g. consider a cursor {:root {:foo {:bar 20}} :path []} ... this is the backing structure behind the map protocol impls

mccraigmccraig12:08:35

(get-in X [:foo :bar]) => 20

mccraigmccraig13:08:13

(get-in X [:foo]) => Cursor[{:root {:foo {:bar 20}} :path [:foo]}

agile_geek13:08:23

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!

mccraigmccraig13:08:30

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

agile_geek13:08:26

@mccraigmccraig: I kind of think I almost get it. It behaves a little bit (conceptually) like a cursor on a database table?

mccraigmccraig13:08:52

@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

mccraigmccraig13:08:26

the cursor looks like map, but plucks data from some point in the backing hierarchy of maps

mccraigmccraig13:08:04

though thinking about it, the db cursor analogy is equally valid

mccraigmccraig13:08:55

@agile_geek: btw does COBOL have closures ?

agile_geek13:08:29

@mccraigmccraig: OK I think I’ve got it. Thanks. I still can’t get the code in the intermediate tutorial running but thanks anyway.

agile_geek13:08:32

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!

mccraigmccraig13:08:13

@agile_geek: wot no functional COBOL with monadic IO ?

jamiei14:08:27

@agile_geek: I've recently been getting started reasonably well with om, what kinds of problems are you having?

jamiei14:08:58

Although I will say that I might be overusing async chans

jamiei14:08:03

(who knows)

agile_geek14:08:21

@jamiei: just basic inability to understand. I’m a bit thick

jamiei14:08:53

I doubt it, I left out the intermediate tutorial because of the datomic use

jamiei14:08:45

I preferred using my own backend and writing apps over the top of that

agile_geek14:08:15

Actually although I couldn’t write Datomic syntax I could understand it.

jamiei14:08:24

Are you new to datomic, edn and some of the server side bits used?

agile_geek15:08:11

Haven’t spent time on Datomic but edn and server stuff is bread and butter

pupeno16:08:04

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.

agile_geek17:08:10

@pupeno: maybe we could do that in the Project Clojure Dojo between projects?

pupeno17:08:59

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.

pupeno18:08:48

And by maybe I mean, yes! I’m game!

agile_geek18:08:18

@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?

pupeno18:08:01

I’ll be happy to.