This page is not created by, affiliated with, or supported by Slack Technologies, Inc.

## 2018-11-27

## Channels

- # adventofcode (1)
- # announcements (4)
- # beginners (120)
- # calva (5)
- # cider (12)
- # clara (3)
- # cljdoc (48)
- # cljs-dev (33)
- # cljsrn (4)
- # clojure (124)
- # clojure-dev (43)
- # clojure-europe (2)
- # clojure-italy (168)
- # clojure-nl (2)
- # clojure-spec (7)
- # clojure-uk (79)
- # clojurescript (50)
- # core-logic (6)
- # cursive (12)
- # datascript (1)
- # datomic (8)
- # devcards (2)
- # emacs (5)
- # events (2)
- # figwheel-main (6)
- # fulcro (18)
- # graphql (42)
- # hyperfiddle (3)
- # jobs (1)
- # luminus (2)
- # nrepl (5)
- # off-topic (59)
- # onyx (5)
- # parinfer (2)
- # pathom (10)
- # pedestal (2)
- # portkey (3)
- # re-frame (24)
- # reagent (6)
- # reitit (54)
- # remote-jobs (1)
- # ring (5)
- # shadow-cljs (75)
- # spacemacs (35)
- # sql (22)
- # tools-deps (16)
- # unrepl (10)

mΓ₯ning

Morning

:yawn: Morning πͺ

got a cold?

Feeling a little run down. Year end activities π

Bore da pawb

@jasonbell can I get a preview?

"boo kafka, boo python, that concludes my presentation, thank you everybody for coming"

**puts up slide that just says**

And the title of my talk is @alex.lynham? π

π π¨γ°οΈ π§

that's my best emoji rendition of deep learning with kafka and clj, haha

i've got c* query-fu @carr0t... which may or may not be applicable, depending - what's your problem ?

I've got a load of data in a DDB, and some of the import was corrupt, but I don't know which bits

I know the effect, which is that a partition key in DDB will be missing a certain record

is the table moderate sized enough that you can do a full-table scan ?

that would be my first port of call for a similar c* problem

hmm - and even to build an index table of rows which don't have a particular attribute would require a full-table scan anyway, certainly in c*

S'OK, we think we've got a halfway house that won't necessarily fix **all** the data, but it'll fix the bits we care about π

```
user=> (doc -)
-------------------------
clojure.core/-
([x] [x y] [x y & more])
If no ys are supplied, returns the negation of x, else subtracts
the ys from x and returns the result. Does not auto-promote
longs, will throw on overflow. See also: -'
nil
user=> (doc +)
-------------------------
clojure.core/+
([] [x] [x y] [x y & more])
Returns the sum of nums. (+) returns 0. Does not auto-promote
longs, will throw on overflow. See also: +'
nil
```

```
(defn vector_arith [f]
(fn
([] [(f) (f)])
([[x y]] [(f x (f)) (f x (f))])
([[x y] [a b]] [(f x a) (f y b)])
))
```

given that `-`

works on any arity `>=1`

and there is an identity it would seem reasonable for it to also work with arity `0`

>Let (S,ββ) be a set S with a binary operation β on it. Then an element e of S is called a left identity if e β a = a for all a in S, and a right identity if a β e = a for all a in S. If e is both a left identity and a right identity, then it is called a two-sided identity, or simply an identity.

```
(transduce identity + [1 2 3])
6
witan.send.model.run> (transduce identity - [1 2 3])
ArityException Wrong number of args (0) passed to: core/- clojure.lang.AFn.throwArity (AFn.java:429)
```

we can't change how maths work in order to make a particular use-case more ergonomic :)

you can put your function in to test check to check if it passes the laws https://gist.github.com/minimal/40085951c277d8ce26ad