Fork me on GitHub
#portkey
<
2018-11-30
>
viesti13:11:42

just listened to Stuart Halloway’s talk

viesti13:11:24

and now really excited about todays “AWS, meet Clojure” talk 🙂

viesti13:11:32

which starts in an hour I guess

viesti13:11:59

yeah well, really a teaser

viesti13:11:22

the lately added Datafy protocol is a center part of the mix

viesti13:11:29

(defprotocol Datafiable
  (datafy [o] "return a representation of o as data (default identity)"))

viesti13:11:22

not sure yet, but with that one could make the java stuff more data-like

viesti13:11:07

if the idea with aws-clj-sdk is to go and make aws http api’s more like data, then Datafiable can just benifit from that work

viesti13:11:22

there’s the concept of Navigable too

viesti13:11:58

which would allow seeking (might allow paging too)

viesti13:11:31

anyway, quite exciting

viesti13:11:25

not yet sure if their idea is to work on operating on the pure material (xml/json etc.) of the http api’s though

viesti13:11:56

well anyway, have to watch the presentation at some point in near future 🙂

baptiste-from-paris13:11:00

i’ll have at least 4 weeks off, just tell me if I finish the project or not 😅

cgrand14:11:27

if @viesti is right on the money then it means they use datafy over AWS java libs

cgrand14:11:51

so axs-clj-sdk has still value proposition of being pure clojure and cljs

viesti14:11:55

I was a bit wary of saying that, but the java libs have quite much stuff in them which is valuable and aws-clj-sdk still has it’s value proposition

viesti14:11:10

so if that is the case, there is just novel work, no losers here

baptiste-from-paris16:11:26

😭😭😭😭😭😭😭

viesti17:11:16

hmm so traveling back from company little Christmas party still today, can I bear watching the presentation in train? :)

baptiste-from-paris17:11:44

Must be interesting anyway

viesti17:11:16

hmm so Datafy on ClojureScript, there's the question on amount of work bridging JS to Datafy

viesti17:11:12

thinking that one artifact is an upside too

viesti17:11:23

anyways we hit a spot :)

baptiste-from-paris17:11:19

Datafy is on cljs ?

viesti17:11:34

well the protocol is in a clj file

viesti17:11:09

don't know the story of cljc in core actually

baptiste-from-paris17:11:37

Didn’t watched aws, I think I’ll wait after London ^^

viesti20:11:56

hmm, didn’t yet find David’s recording

viesti20:11:14

next slide is the one that @baptiste-from-paris referenced

viesti20:11:46

anyway we got onto a slide in the Conj 🙂

viesti20:11:49

hmm, this isn’t just Datafy over Java classes… I hope…

viesti20:11:45

ahaa, David found js, ruby and go sdk’s with service descs

viesti20:11:36

you did not watch the whole talk? 🙂

viesti20:11:11

I’m progressing slide by slide

baptiste-from-paris20:11:27

Having a drink with friends

baptiste-from-paris20:11:34

I geeked all week ;-)

viesti20:11:35

you not dare? 🙂

viesti20:11:30

in a train back to home, have to decide if I drink something to my misery or get enlightened after this 🙂

viesti20:11:33

they (Cognitect) started in 2015

viesti20:11:46

11 people involved

viesti20:11:55

Rich himself

cgrand20:11:27

I haven’t watched it but I guess you (@viesti and @baptiste-from-paris) can be proud.

viesti20:11:29

com.cognitect.aws/api

viesti20:11:40

you too 🙂

viesti20:11:47

Christophe 🙂

viesti20:11:53

they too use the other sdk’s for models to generate clojure artifacts

viesti20:11:04

man oh man, If I’d just had really promoted this in my company, there’s so many people getting betting on AWS, just that not that many on particularly on Clojure

baptiste-from-paris20:11:25

Real question is : can we be better at it

viesti20:11:44

I’m 16min in the presentation still

baptiste-from-paris20:11:25

Humm, seems our lib is better ^_^

viesti20:11:59

(api/ops s3-client) is like (amazonica/show-functions)

viesti20:11:03

we have specs

viesti20:11:31

cider-browse-specs rules here

viesti20:11:46

we even have docstrings

viesti20:11:58

(ok, not for all api’s but anyway)

viesti20:11:21

ah, but they have specs

viesti20:11:41

(me: interlude, where are spec dosctrings)

viesti20:11:29

they have pay-as-you-go, docs/specs get loaded during call, not on require

viesti20:11:46

lower-level response in metadata, it seems

viesti20:11:25

not streaming, since the client they use (same http client as datomic uses)

baptiste-from-paris20:11:52

Keep going with news ^^

viesti20:11:06

yeah, not live but anyway 🙂

viesti20:11:50

retryable? predicate, can retry requests via throttling

viesti20:11:47

(thinking that this is a “Release it” book like addition)

viesti20:11:18

seems there are more backpressure things, backoff retry

viesti20:11:25

credential chain as normal, maybe nothing interesthing here, but for completeness sake, works in EC2 and containers

viesti20:11:20

ok but for testing one can provide a :credentials-provider

viesti20:11:38

(aws.async/invoke) gives back a channel

viesti20:11:16

(now Christophe could chime in for async support :))

viesti20:11:36

(def ddb (aws/client {:api :dynamodb}))

viesti20:11:48

demo effect

viesti20:11:17

clojure -A:rebl...

viesti20:11:42

(almost like clojure -A:rebel for Bruce’s work)

viesti20:11:57

wifi problems, demo effect continues

viesti20:11:17

oh damn! wifi fails demo

viesti20:11:51

would have demoed documentation navigation

viesti20:11:05

library state is alpha

viesti20:11:14

designed for dealing with services, no helpers (like aws-clj-sdk)

viesti20:11:43

meaning that lacks stuff like the TransferManger in the Java S3 api which does multipart download in parallel

viesti20:11:52

try it out! feedback!

viesti20:11:11

jars in maven central

viesti20:11:03

questions?

viesti20:11:19

(I would have but I’m no there)

viesti20:11:43

ack, he didn’t repeat the questions

viesti20:11:10

ahh, someone asked about versioning the apis

viesti20:11:15

they generate clojure specs

viesti20:11:47

Stu comes with a laptop

viesti20:11:50

demo time!

viesti20:11:04

(Stu says this is supercool)

viesti20:11:12

Stu takes the stage

viesti20:11:39

comedy style of Stu finding a connnector for his laptop 🙂

viesti20:11:51

okay, he demoes the thing that I demoed with Emacs cider-browse-spec gif

viesti20:11:01

caps lock remapped confuses David!

viesti20:11:26

html as html (hrm, we have html to nice string)

viesti20:11:17

ok, list tables in dymanodb, then get arn, Datafy the arn, turn that into table describe

viesti20:11:48

Datafy the resouce, Nav throught it

viesti20:11:06

(i.e. jump through all the AWS api)

viesti20:11:15

there, phew

viesti21:11:23

well the spec generation struct me

viesti21:11:37

Datafy is something that didn’t exist just until now

viesti21:11:52

obviously we didn’t know about it

viesti21:11:25

I think David mentioned that this lib is in experimental use

viesti21:11:41

but odds are that this will get more eyes on it than ours

viesti21:11:21

didn’t catch how many API’s they actually support

viesti21:11:45

thinking that probably not API Gateway, for which Cristophe did a fair amount of work

viesti21:11:06

0% tree src/cognitect/aws/protocols
src/cognitect/aws/protocols
├── common.clj
├── ec2.clj
├── json.clj
├── query.clj
├── rest.clj
├── rest_json.clj
└── rest_xml.clj

viesti21:11:15

right off the bat, more protocols than we support

viesti21:11:20

and since they release to maven, this lib has immediate user base

viesti21:11:37

0% tree test/resources/aws-sig-v4-test-suite
test/resources/aws-sig-v4-test-suite
├── get-header-key-duplicate
│   ├── get-header-key-duplicate.authz
│   ├── get-header-key-duplicate.creq
│   ├── get-header-key-duplicate.req
│   ├── get-header-key-duplicate.sreq
│   └── get-header-key-duplicate.sts

viesti21:11:58

test suite might look familiar to Baptiste? 🙂

baptiste-from-paris21:11:13

But it’s all good, the journey does count, not the destination and if I feel that I can bring something new with finishing the last protocol during Xmas I’ll do it

baptiste-from-paris21:11:31

If not, fuck it, it was awesome anyway

viesti21:11:50

my thoughts exactly, awesome anyway 🙂

👌 4
viesti21:11:53

I don’t see HAL in the lib

viesti21:11:06

wiggle that in to make the thing better

viesti21:11:17

glad that this wasn’t just glue over Java artifacts

viesti21:11:27

but a proper datafying

viesti21:11:24

I say we pat ourselves on the back in London, and continue the Clojure journey, wherever it leads us 🙂