This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-03-17
Channels
- # bangalore-clj (1)
- # beginners (70)
- # boot (1)
- # cider (39)
- # cljs-dev (69)
- # clojure (56)
- # clojure-dev (1)
- # clojure-norway (1)
- # clojure-russia (4)
- # clojure-spec (1)
- # clojure-uk (10)
- # clojurescript (34)
- # clr (3)
- # community-development (3)
- # component (1)
- # datascript (1)
- # datomic (7)
- # emacs (1)
- # figwheel (3)
- # fulcro (5)
- # graphql (2)
- # hoplon (75)
- # jobs (4)
- # jobs-discuss (1)
- # luminus (15)
- # planck (3)
- # portkey (55)
- # re-frame (2)
- # reagent (2)
- # reitit (3)
- # ring (13)
- # ring-swagger (1)
- # shadow-cljs (72)
- # spacemacs (4)
- # tools-deps (2)
- # unrepl (7)
- # vim (2)
happened to look into Cloudformation (the Yaml format, json used to be quite verbose and not even handcrafted but drawn with an editor leading to awkward layout data intermixed with resource definition)
the thing seems quite nice, a spec for that would allow some amount of local validation, would need to parse Refs though
@viesti If you’re looking to add CloudFormation to portkey in terms of being able to say “and I also want this fn
to store its output in a new Dynamo table” or similar …I guess I assume you know about this already, but SAM (https://github.com/awslabs/serverless-application-model) might act as a force multiplier there
Would this be remote or next to another event (say conference) where people could gather to a same location or both? (remembering that there was unrepl hackday before/after a conference but can't remember now which one)
First hackday was before a talk I gave at clojure berlin (the user group). Second was before clojureD.
At times I entertain the idea of renting a large guest house (or a group of) in a sunny place in France to host some extended hack days/unconf. Family accepted.
For ClojuTre last fall, we did a couple remote idea/knowledge transfer sessions. They might have worked better when at same location
at work and at university we used to have codecamps. Work (possibly) and University are good places to gather people together.
anyways, I don't have any planned travels to conferences yet, excluding ClojuTre (but that doesn't require travel)
@chris_johnson yeah, whipped up a SAM example with two lambdas and one proxy route. Neat to express the configuration in one file (and more can be done). CF wise I guess this is done as a transform that expands into more verbose resource definition.
Yeah, that’s exactly what it is - the SAM declaration at the top of the template file gets “macro expanded” into a bunch of stuff that is effective but not optimized for developer readability
Personally I find even the CF/SAM/ServerlessFramework yaml syntax quite terrible to work with. It would be awesome to be able to manifest AWS infra as Clojure data structures and call a function to deploy it from REPL… 🙂
Heh.. Just needed to google for it https://github.com/brabster/crucible
true for CF data formats not being neat to work with, remembers me of Ansible (Ansible is imperative so even more awkwardness there)
Python alternative to crucible seems to be troposphere https://github.com/cloudtools/troposphere
I’ve used Troposphere at work but the Python code tends to get verbose / hacky pretty quickly and it loses the benefit. At the moment my favourite is writing simple, clean and parameterised CF templates by hand. But I’m going to give Crucible a try!
CF has a service api within AWS so one can distribute the resulting data (ideally) without requiring the consumer to have anything else (say a box for running a tool that interprets the data)
It would maintain readability but it would still be nice to work with both programmatically and ‘by hand’. Promising! 🙂
In my case, edn is probably what I actually want. In my early CF-days templates felt overwhelmingly complex and generating the JSON using DSL (Troposphere) felt like a good idea. But after a while I began to “think in CF” and it started to feel more natural to just write the CF directly.
Would this be remote or next to another event (say conference) where people could gather to a same location or both? (remembering that there was unrepl hackday before/after a conference but can't remember now which one)
For terraform, we do edn-like. There's a postwalk-ish thing done, when we encounter a namespaced key, we call a multimethod with the namespaced key. The arguments are the path to the current location, the whole map as currently resolved, the value of the key, and this context (for us, that's the config file).
We use it to do things like project/dns-route "x.t"
which then associates a matching route 53 (`(assoc-in whole [:route53-route (last path)] {...})`). We stop when the map stops changing.
somehow integrant came to my mind, and remembering that Leiningen project.clj has this form ~(fn [here-be-current-project-map]
although it's not edn. Saw https://github.com/walmartlabs/dyn-edn, but having whole map as resolved as argument allows access to more data, just thinking how dependencies work... data readers could be relatively easy to do, but to watch out not making edn into a "Clojure" :)