Fork me on GitHub
#clojure-europe
<
2022-10-05
>
otfrom07:10:29

My French is so bad

borkdude07:10:09

Bon matin

❤️ 1
reefersleep08:10:56

Good morning!

genRaiy08:10:20

Good nutty morning

🥜 1
genRaiy10:10:31

:man-facepalming::skin-tone-2:

lread12:10:41

No, it's nut good!

genRaiy13:10:15

:drum_with_drumsticks:

Ben Sless17:10:52

Y'all are nuts 🙂

Ed09:10:48

'ow be on

lread12:10:44

'ood mornin'

borkdude13:10:59

ood orning o ou oo!

simple_smile 3
robert-stuttaford14:10:17

is this the see-if-you-can-talk-with-a-mouth-full-of-marbles challenge

lread14:10:39

n:marble: n:marble:t at all!

borkdude14:10:34

marble arbellous

marble 7
otfrom17:10:34

ood morning

🍝 3
plexus18:10:41

I happen to find myself heading to London this weekend... I believe there are some Londoners here? Maybe we can get a bit of a social Clojure thing going?

slipset21:10:57

So, like sql, monads, and effect systems and stuff. If you write your normal dao fns like (user/find-by-name db name) or (user/find-by-email db email), you can’t really compose them, ie if you want to find a user by name and email you can’t say

(and (user/find-by-name db “Erik”) 
(user/find-by-email db “”))
But if you stay in the realm of queries you can, since (in honey sql syntax)
[:and (by-name “erik”) (by-email “”)] 
makes total sense. Not sure where I’m going with this, but I think it’s cool.

2
🍯 1
lemontea21:10:26

ya I think this is a key benefit of “data-driven” (like the directions taken in bidi and reitit etc). On the other hand maybe (?) the analog of this in the static typed functional languages are combinators (not sure)

robert-stuttaford05:10:23

'data is the interface' is something we say a lot in our team 🙂

Ben Sless05:10:42

Interesting, there's certainly an algebra for that

Ben Sless05:10:39

Something else I've been thinking about is how a schema is a bit like a query, and a mechanism to translate schemas to queries

daniel.flexiana16:10:47

Yeah. I think if we organize the code in the correct abstract level it's much easier to maintain and compose stuff.

lemontea17:10:35

@UK0810AQ2 you got the keyword. Many “advanced patterns” in Haskell etc (from Monad onwards) boils down to using math to make something more “algebra like” (i.e. you’ve got a bunch of operators of the form D x D x D… -> D and can pretty much freely compose with other operators)

lemontea17:10:31

@U04V5VAUN perhaps a bit more remark: I come across similar “pattern/thoughts” of using data-driven + function that generate data to tackle complex SQL query by making it possible to implement abstractions and then compose (like the by-name function above), and have loved it since then…

lemontea17:10:13

… alas, times have changed. If you’re stuck in legacy SQL/RDBMS, then that’s pretty much still almost the state-of-the-art to the best of my knowledge (perhaps generating query guided by the schema is more cutting edge). Then come datalog (and alternative DB architecture) and everything changed.

lemontea17:10:38

(speaking of which, the walkable library is worth taking a look at)

lemontea17:10:22

(Reason for “everything changed” - imo, although I previously conceptualised the query language and the underlying/physical architecture as two separate component of a DB, I later changed my view into “they are different aspects, but can be tightly coupled” and “in the best case, innovations in these two are synergistic” )