Fork me on GitHub
#clojure
<
2016-06-20
>
Alex Miller (Clojure team)02:06:21

@leifp the Clojure repl in clojure.main/repl is highly customizable (perhaps too customizable even :)

leifp02:06:34

Thanks, @alexmiller, I'll take a look there, too. The number of dependencies is certainly optimal šŸ™‚

danplz08:06:43

What is the recommended way to define a route for serving a directory of static assets in Compojure API? There is a short example at https://github.com/metosin/compojure-api/wiki/Migration-Guide-to-1.0.0#seeing-extra-warnings, but it excludes a classic Compojure route from the swagger docs. I see no reason to make an exception of the static files, amirite?

danplz08:06:53

I mean, it would be nice to be able to fetch a JS file when playing with the swagger UI, and that would also be a good place for me to suggest caching strategies for static assets

danplz08:06:48

Also, I assume that resources handler in that example is compojure.route/resources, not something in compojure-api, correct?

danplz08:06:58

ack, sorry, I should have posted in ring-swagger room. I'll refrain from cross posting.

danplz08:06:33

Since I want to document the JS client, it makes sense to create a regular compojure-api route, in a "/public" context. No need for route/resources, yet.

meowy08:06:41

@danplz A compojure-api route is just that, a route, so you can compose it with anything else you like.

meowy08:06:40

Something like that.

bcbradley09:06:02

these aren't equivalent, can you explain why?

bcbradley09:06:50

(defn space-grid [m n] (map #({:space [(quot % m) (mod % n)]}) (range (* m n)))) (defn space-grid [m n] (map (fn [i] {:space [(quot i m) (mod i n)]}) (range (* m n))))

hans10:06:42

@bcbradley: #({...}) is not the same as (fn [i] {...}). In the first form, the map is actually evaluated as a function, because it is in the function position (<here>). in the second version, it is not and thus just returned.

hans10:06:14

@bcbradley: you could use #(hash-map :space [(quot % m) (mod % n)]) to replace the first form with something equivalent to the second

hans10:06:58

@bcbradley: maybe it helps to understand if you know that both #(...) and {...} are special reader syntax. if you use both in a nested form, they both do their thing. parentheses are not just a grouping device in lisps, but they're very significant.

mpenet10:06:57

you can think of fn as having an implicit "do"

mpenet10:06:04

unlike #()

mpenet10:06:11

well the bot is not cooperative

mateus.henrique.brum13:06:28

Hey guys, what are you using to work with micro-services, something like spring boot or dropwizard ?

leo.ribeiro14:06:46

@mbrum: Iā€™m using both.. I have them in production

leo.ribeiro14:06:18

guys, Iā€™m trying to join this wonderful clojure world (Iā€™ve started dirtying my hands last saturday)ā€¦ and itā€™s pretty awesomeā€¦ Iā€™ve started from Brave Clojure and Aphyr - Clojure From ground upā€¦ But actually Iā€™m not liking it anymoreā€¦ because I donā€™t feel the examples are going to fit the real world, I would like something more enterpriseā€¦ whole scenarios, not only algorithmsā€¦ structure full projects, manage db access with connection pool, jdbc, serve and process json, etcā€¦ do you suggest me any good content that I can find all of it?

borkdude14:06:00

@leo.ribeiro: check out Luminus

borkdude14:06:30

@leo.ribeiro: also read Clojure Applied

leo.ribeiro14:06:42

@borkdude: thank you very much my friend!

leo.ribeiro14:06:48

I will give it a shot of course! šŸ˜„

leo.ribeiro14:06:51

@borkdude: is it the clojure applied from ben vandgrift and alex miller?

anmonteiro14:06:32

can I make the generated defrecord constructors private somehow?

anmonteiro14:06:01

(without using alter-meta!)

dm315:06:28

what's the proper way to check if something is a list? that would also catch cons?

dm315:06:18

(and (list? %) (instance? clojure.lang.Cons %)) ?

pataprogramming17:06:34

edn question: I'm using edn/read-string to turn fields in a CSV into Clojure values. This is working great for everything except strings, as strings are not quoted in the CSV. Is there a straightforward way to have read-string interpret them as strings, not symbols?

pataprogramming17:06:33

Currently fixing it with a post-processing step, but was wondering if there was a way to tweak the reader.

kauko17:06:50

@dm3: curious, why do you need to test if something is a list? Can you test whether it's a sequence with seq?, and then convert it into a list?

ebaxt17:06:56

Heisenbug alert: Have you experienced something similar? We're using friend as auth lib and are currently experiencing a strange bug in our test env. When calling

(friend/current-authentication request)
we're getting a "stale" user even though the request contains the correct data. (For those who haven't used friend, it's basically a lookup in the request map
(-> request :session :cemerick.friend/identity :authentications (get ""))
. By stale I mean it returns a previously logged in user. The issue is extremely strange, since it boils down to a simple nested map lookup returning a "stale" value. We've tried in-lining the current-authentication function into the calling ns, and that seems to work. We're starting to run out of ideas, so if you have any ideas I would be really grateful for any input!

pvinis18:06:45

guys, in a build.boot, how can i upgrade the dependencies to a newer version?

pvinis18:06:14

do i have to go check the websites and see? or is there an easy way to see or update the version number?

spinningtopsofdoom18:06:52

@pvinis: you could try the #C053K90BR channel

pvinis18:06:12

oh thanks. didnt know about the channel

dgellow18:06:20

quick question. Any idea how I can make a CSSĀ selector input[type=text] using garden? (garden.core/css [:input [(attr= :type "text") {}]]) gives me ā€input [type=\"text\"] {\n\n}ā€ (notice the extra space between input and the attribute selector). (garden.core/css [:input (attr= :type "text") {}]) gives me "input, [type=\"text\"] {\n\n}ā€.

dgellow18:06:25

aaah, I found a solution! (garden.selectors/input (attr= :type "text"))

ikitommi18:06:27

thanks @meowy for the example! Added a wiki-page to describe the two options & the caveat, https://github.com/metosin/compojure-api/wiki/Serving-static-resources, ping @danplz

dm318:06:35

@kauko - thanks, seq? works! Always get confused in the type hierarchy...

kauko18:06:55

Glad I could help šŸ™‚

Bryan19:06:41

Quick question... if I'm writing a Clojure cli utility and want to use unix pipes to get data into the utility i.e. echo "abcdef" | java -jar my-utility.jar the data should come in on *in*, correct?

Alex Miller (Clojure team)19:06:49

@dm3 something broader is sequential? but depends what you're doing

Bryan19:06:22

nevermind, figured it out šŸ™‚ For anyone else reading, yes, it comes in on *in*

Bryan19:06:45

@alexmiller: Thanks, I was working on code that's expecting either a filename or data streaming in on stdin and was fighting with *in* for a while until I realized that my conditional statement wasn't working correctly šŸ™‚

fabrao23:06:26

Hello, anyone knows a library to ajax-somthing from clojure, not clojurescript to use with https? IĀ“ve tried cljs-ajax but it didnĀ“t work.

bostonaholic23:06:52

@fabrao: Iā€™m not sure I know what you mean about ā€œajax-something from clojureā€, but have you tried clj-http

fabrao23:06:47

make ajax like call from Clojure as we do in Clojurescript

bostonaholic23:06:55

do you just mean an http call?

bostonaholic23:06:34

then use clj-http

bostonaholic23:06:32

and if you need it to be async you can use core.async

fabrao23:06:06

ok, IĀ“ll try it