juxt

steveb8n 2017-09-07T07:39:14.000273Z

@jonpither have you had a chance to decide on best next step for Roll? maybe make the AMI public or share just to me for testing?

👀 1
jonpither 2017-09-07T07:58:37.000279Z

Hi @steveb8n will look at this first thing

steveb8n 2017-09-07T07:59:02.000156Z

brilliant thanks

steveb8n 2017-09-07T07:59:37.000130Z

btw I watched your ClojureTRE talk on it. very good for clarifying the layers

stijn 2017-09-07T10:57:18.000234Z

hi @jonpither I'm looking at pack-datomic and was wondering if there's any reason you're using the particular AMI that's specified in https://github.com/juxt/pack-datomic/blob/master/datomic.json

stijn 2017-09-07T12:52:32.000179Z

and I also have a mach question

stijn 2017-09-07T12:52:58.000287Z

{

 mach/props [datomic-version "0.9.5561.56"
             datomic-dir (str "datomic-pro-" datomic-version)
             jar "target/transactor-lib.jar"
             lib-target (str datomic-dir "/lib/transactor-lib.jar")]

 jar        {product jar
             novelty (or
                       (not (mach.core/file-exists? jar))
                       (mach.core/modified-since jar "src"))
             produce #$ ["lein" "jar"]}

 lib        {product lib-target
             novelty (not (mach.core/file-exists? lib-target))
             depends [jar]
             produce #$ ["cp" jar datomic-lib-target]}

 run        {depends [lib jar]
             update! #$ ["cd" datomic-dir "&&" "./bin/transactor" "-Xmx2g" "dev-transactor.properties"]}
 }

stijn 2017-09-07T12:53:08.000376Z

this is my Machfile.edn

stijn 2017-09-07T12:53:32.000223Z

If I do a mach run it is starting the transactor before the jar and lib tasks have completed

stijn 2017-09-07T12:54:20.000114Z

as a side node: after only half an hour i'm absolutely loving mach 🙂

raymcdermott 2017-09-07T12:59:12.000090Z

guys … trying to use your pack-datomic repo

raymcdermott 2017-09-07T12:59:25.000034Z

and it’s barfing on an unknown AMI

raymcdermott 2017-09-07T13:00:05.000719Z

the code has not been updated for several months, so are you still using this code?

raymcdermott 2017-09-07T13:00:37.000265Z

oh … forget it … I changed regions and the AMIs are per region

raymcdermott 2017-09-07T13:04:01.000633Z

@stijn - haha .. parallel lines!

raymcdermott 2017-09-07T13:06:53.000512Z

seems like that image is the AWS ubuntu AMI

dominicm 2017-09-07T13:10:53.000304Z

We are using pack-datomic

raymcdermott 2017-09-07T13:17:15.000100Z

@dominicm … the AMI in the datomic.json is only available is eu-west-1

dominicm 2017-09-07T13:17:40.000047Z

yeah, makes sense. That's where we use it. AMI's seem to be confusing in terms of availability & such.

raymcdermott 2017-09-07T13:17:53.000142Z

so I think the docs should suggest what you are using (ubuntu latest by the looks of things)

dominicm 2017-09-07T13:17:56.000630Z

Is there a way to get AMI's that work everywhere or something?

dominicm 2017-09-07T13:18:01.000427Z

Yeah, ubuntu for datomic atm.

stijn 2017-09-07T13:18:18.000185Z

no, but maybe you need to make ami a parameter too

raymcdermott 2017-09-07T13:18:30.000543Z

I don’t think there are universal AMIs

dominicm 2017-09-07T13:19:32.000235Z

I think in an ideal world, we'd cover all regions on your behalf based on a case or whatever.

dominicm 2017-09-07T13:20:09.000391Z

There's like, 16 regions.

dominicm 2017-09-07T13:20:46.000660Z

or 9, depends where I look :thinking_face:

dominicm 2017-09-07T13:21:46.000637Z

14 in april 2017...

dominicm 2017-09-07T13:22:22.000241Z

14 seems to be a common number. Sticking with that.

dominicm 2017-09-07T13:23:02.000260Z

https://cloud-images.ubuntu.com/locator/ec2/ could make a sensible import of this data into the repo & do it that way.

raymcdermott 2017-09-07T13:23:18.000002Z

it would be nice to have ke / value pairs

dominicm 2017-09-07T13:23:33.000119Z

@raymcdermott how do you mean?

raymcdermott 2017-09-07T13:24:16.000695Z

key: eu-west-1 value: ami-123-whatever

raymcdermott 2017-09-07T13:24:51.000392Z

but also the locator would be ok

stijn 2017-09-07T13:26:11.000014Z

aha, this locator is nice

dominicm 2017-09-07T13:28:49.000226Z

I'd have the minor concern of sync if we didn't take advantage of something supposedly consistent like the locator.

raymcdermott 2017-09-07T13:29:39.000340Z

sure, that’s better as it is maintained

raymcdermott 2017-09-07T13:32:09.000066Z

so you have 16.04 LTS with and ebs-ssd

raymcdermott 2017-09-07T13:50:43.000379Z

(actually t2.micro needs HVM so … hvm:ebs-ssd or hvm:instance-store)

dominicm 2017-09-07T13:59:01.000838Z

thinking more, easier to filter by version & such, no situation where one is 16.04 and one is 17.04 for example.

dominicm 2017-09-07T14:00:41.000544Z

https://cloud-images.ubuntu.com/locator/ec2/releasesTable nice

raymcdermott 2017-09-07T17:45:42.000125Z

@dominicm am I right to assume that the storage must be provisioned outside of the pack-datomic?

2017-09-07T21:12:26.000393Z

Does anyone feel up to the task of comparing Boot with Mach? I have been playing with the idea of trying to help port boot to node in an effort to make clojure a better language for Ops. The main thing i like about boot (though im very much a novice) is the pipeline abstraction. I dont like the idea of tasks depending on each other without any flexibility (something i ran into with Rake). And eventually would like to see a more graph like option, something like what Onyx has. Someone pointed out Mach had this goal of making ops easier in Clojure. So i watched the recent clojurTre video. I still need some time to wrap my head around the idea.

dominicm 2017-09-07T21:45:21.000175Z

@drewverlee 👋 they're both coming at the problem from different angles. Boot is flexible, but clearly is designed to get you into a clojure environment. The no caching is obviously slow, this is a motivator to mach. Mach has no pipeline. Mach is just a dependency graph and targets at core. If you've used make, it feels like that.

2017-09-07T21:59:31.000250Z

@dominicm Thanks! Embarrassingly i haven’t used boot much, from the little i have, i assumed it was fairly agnostic to what types of Boot Tasks you used. Given the feedback i have gotten, its seems likely i’m missing something. I haven’t used Make much either (maybe i’m not a good fit for this task 😞 ), but i have used Rake. I assume the dependency graph is make is where one function is called based on another being called. f -dep--> g, so if we call f, then g gets called first. I’m starting to envision a slightly more flexible model built around the pipeline abstraction that boot uses. I’m just starting to gather information, i don’t want to build something that isn’t useful or wont get used… no point!

dominicm 2017-09-07T22:20:46.000224Z

@drewverlee oh, it is agnostic! But in practice, there's a single focus. Rake is more of a "task runner", make is a file target maker. One thing it does is skip work based on file timestamp. C.out <- A.o + B.o <- A.c + B.c Make C.out will look for B.o and A.o, and only remake them if their corresponding .c file was modified. So you can have a situation where it only does cc B.c , followed by ln A.o B.o

dominicm 2017-09-07T22:21:11.000079Z

(Typing from mobile so excuse inconsistent typing)

2017-09-07T22:28:43.000097Z

I think i understand. I dabbled with make back in college.

dominicm 2017-09-07T22:36:54.000146Z

Boot throws all caching it in order to guarantee a clean build. One of the BSDs does a clean in their build chain before running make, because they screwed up the dependency somewhere, and can't figure out where. Caching things is hard. Lein does a bad job of it. So immutable files were a good thing from that perspective.

steveb8n 2017-09-07T23:29:54.000116Z

@jonpither Rays comment inspired me to check other regions and I found that the Edge AMI is in the Ireland region. I can go through the AMI copy process to replicate it to Sydney but wanted to check-in first to see if you had any other thoughts on this e.g. planning to change AMI? cc @dominicm