Fork me on GitHub
#clojure
<
2015-08-06
>
jeffmk01:08:10

@cddr: Is clojure programming already saturated enough such that people who don’t understand clojureness are getting paid to write it?

cddr01:08:48

Only in SF. Anyway, this is #C03RZGPG3. Happy to continue this topic there but I probably shouldn't have brought it up here. Apologies for the spam

blueberry07:08:38

@cddr it is not spam. it is good to know that Clojure got to that point 😉

robert-stuttaford09:08:24

any redis users in the room?

robert-stuttaford09:08:55

i’m brand new to it. wondering if redis-cli monitor’s logging of a GET is a hit, or an attempt that might be a hit or a miss?

Pablo Fernandez11:08:10

I moved my source code to src/clj and adde this to my project.clj: :clj {:source-paths ["src/clj”]}, but I still get an error: Can't find ‘projectx.core' as .class or .clj for lein run: please check the spelling. What am I missing?

robert-stuttaford11:08:22

yeah. since realised that. but the library i’m using only attempts gets after first checking for the presense of a value

crisptrutski11:08:56

used it too - awesome stuff simple_smile

cfleming14:08:29

Can anyone point me to an open-source project using leiningen which uses multiple lein projects with interdependencies between them?

tjg14:08:48

What should I read for current best practices on server password management? (On a server which hosts multiple Clojure apps.)

tcrayford14:08:09

@tjg: what kinda of "server password management" do you mean? I think I'm confused… Do you mean passwords to login to the servers? Do you mean how to store user passwords?

tjg14:08:58

Ah sorry, I mean APIs you use. Like if you use Google's API, you have to store credentials securely...

tcrayford14:08:29

like, you're storing your credentials for google's api, or your user's credentials?

tjg14:08:55

Yes, my credentials for Google's API. Not my user's.

tcrayford14:08:10

for your credentials: I don't think anything in clojure land I know about says anything specific about that. A lot of folk use ENV, quite a few others use config files etc.

tcrayford14:08:47

typically once an attacker has shell access on your server you're hosed anyway

tcrayford14:08:06

(because if you're using some key to access it, the key has to be accessible from the server)

tcrayford14:08:18

(uh: some key to decrypt the credentials)

tjg14:08:43

Yeah, definitely. Ok, thanks!

voxdolo15:08:44

Anyone have strong opinions about relational database migration libraries? I started out using lein-tern and now regret it greatly and need to make a move.

voxdolo15:08:47

It seems ragtime is the de facto standard. love it? hate it? suggest something else?

andrewhr15:08:39

@voxdolo: there is also https://github.com/yogthos/migratus, Luminus uses it by default since some time ago

cfleming15:08:09

@nberger: Thanks, I’ll give that a go.

andrewhr15:08:12

@voxdolo: the rationale for changing the default from ragtime http://yogthos.net/posts/2015-06-29-Luminus-Migratus.html

voxdolo15:08:58

Thanks andrewhr. I'm digging in to try to figure out what the strategy for applying missing migrations is.

voxdolo15:08:07

it looks like if the project defines [A B C D] and your database has [A B D], migratus will just apply C (which is the behavior I desire)

voxdolo15:08:16

looking to verify though

voxdolo15:08:28

@andrewhr Is there some particular benefit of migratus over ragtime? The lein integration isn't a selling point for me.

voxdolo15:08:10

anyone used and have opinions about Joplin? https://github.com/juxt/joplin

voxdolo16:08:09

jakemcc: cheers, yeah… I hadn't forgotten about clj-liquibase simple_smile I should probably re-evaluate it… I initially didn't use it because of all the tooling necessary around it to make it convenient to use.

jakemcc16:08:06

yeah, I’ve written a bit of tooling around it, not really required though if you don’t mind just listing out migrations

jakemcc16:08:24

seems to work well enough were I don’t feel the need to look into other options

nberger16:08:57

@voxdolo: I switched from ragtime to joplin when I needed more control on where the migrations are read from, because I had separate migrations for two different schemas

voxdolo16:08:59

jakemcc: thanks, will take another look

voxdolo16:08:39

nberger: interesting. I don't currently have that issue, but it's good to know that's a supported use case.

nberger16:08:10

@voxdolo: I now remember it was not only that, but I also needed to load migrations from resources. But I see it now supports that since 0.4.0

voxdolo16:08:26

nberger: okay, good to know. Thanks!

andrewhr17:08:38

@voxdolo: don't know any advantage beyond that. To be fair, I've not used too much beyond the basics

voxdolo17:08:00

okay, cool thanks for the feedback andrewhr simple_smile

rory17:08:12

I can highly recommend FlywayDB - there's no direct clj wrapper but it's about 5 lines of interop to make it all work.

voxdolo17:08:27

@rory: looks pretty sweet! thanks for the recommendation

Steve Peterson18:08:47

What built-in types in Clojure are sequential but not sequable‏ or sequable‏ but not sequential?

gtrak19:08:33

@stevep: everything sequential is seqable, maps are seqable but not sequential.

arrdem19:08:14

@gtrak: aren't sorted maps sequential?

gtrak19:08:36

not in clojure

nberger19:08:35

@stevep also strings are seqable but not sequential

nberger19:08:00

but well, strings are java.lang.String, so perhaps do not qualify as built-in type...

Steve Peterson19:08:29

Also ordinary sets are seqable (but not sequential). Sorted sets are not sequential too.

gtrak20:08:45

sets are backed by maps, so that makes sense

cddr22:08:32

Sweet! I have a business need for transducers