2:22 clj_newb_2345: is there a "docker rm ALL" command ?
2:22 wrong chan
2:37 sinistersnare: hello, how can i write the following java code in clojure (using java interop) 'dropSound = Gdx.audio.newSound(Gdx.files.internal("drop.wav"));'
2:37 ive imported 'Gdx'
2:38 would it be something like (.audio.newSound Gdx (.files.internal Gdx "drop.wav"))
2:48 Raynes: sinistersnare: (.newSound Gdx/audio (.internal Gdx/files "drop.wav")) ; I think.
2:48 sinistersnare: oh that makes much more sound
2:48 sense*
2:48 thinking about sound too mucuh...
7:20 xy1: how do I setup my projects or dev machine to accept a self signed certificate in leiningen? I found the :certificates option for defproject. but were to put the certificate such that the project.clj works on all dev machines?
7:24 pepijndevos: xy1; resources folder?
7:25 xy1: pepijndevos: but I have multiple projects using that repository? so adding the certificate to all seems a lot of effort.
7:26 pepijndevos: otherwise I only have option via environment variables or fixed folder right?
7:26 pepijndevos: I guess
7:27 xy1: humm I could add the ":certificates" option to the ~/.lein/profiles.clj right? then the certificate could be in the same folder
7:30 seems to work :D
8:46 geoffeg: Is there a way to get clojure.xml to use the document's schema to properly apply types? I'm trying to convert from XML to JSON (with some processing the middle) and every field from the xml ends up as a string even though many fields are integers.
8:57 llasram: geoffeg: Any notion of things in XML which aren't string document content is something layered on top of XML, none of which clojure.xml is aware of
8:59 geoffeg: alright, thanks
10:01 bkirai: Hello, I'm learning Clojure and I have a question about the basics. How can I make the function to return the "rows" variable: http://
11:04 squidz: does anybody know how evaluate a emacs buffer to a specific nrepl session? It seems to always try to evaluate in the last created nrepl
11:50 lgs32a: when i invoke r/fold with a monoid and a foldable sequence (r/map, r/filter), will the computation run in parallel or do i have to add a combining-fn
11:53 ah i just saw in the source code that the monoid will be used as combine-f
11:55 IamDrowsy: exactly. and if it will run in parallel depends on your initial sequence
12:33 nkozo: I have a web page guarded by ring.middleware.stacktrace/wrap-stacktrace, when I raise an exception created with ex-info, the backtrace is shown on the page, but if the exception comes from a failed assert, then anything is shown, only 500 Server Error is returned. Somebody knows hy?
12:40 ok, now I'm really surprised: (instance? Exception (AssertionError. )) => false
12:40 dotemacs: hello, downloaded & installed the latest lein script at ~/bin/lein. Made it executable, when I run 'lein version' I get: https://
12:40 Did I miss a step which states that I need to declare the HTTP_CLIENT or ...
12:40 ?
12:42 sorry, wanted to ask this in leiningen channel
12:42 triyo: I've got a leiningen based project I haven't touched in a while and I now have a latest version of lein installed. When I run the uberjar command, I now get a NoClassDefFoundError: my_pkg_module/main. Is it not compiling my .clj files that are in the default source path under ./src?
12:45 I checked by running `jar -tvf ./my-prj-standalone.jar | grep my_pcg_module` and found nothing related.
12:46 However, if I run `lein run` all starts well.
12:47 * triyo just realised that there is now a #leiningen channel. Been away for to long :-(
12:47 lgs32a: when using leiningen, can I partly omit source files?
12:47 because :omit-source omits all
12:49 triyo: lgs32a: seems to be just a boolean flag and I don't see that any pattern can be specified to include or exclude certain source files
12:51 lgs32a: yeah i know
12:52 can you recommend a starting point to hack that in leiningen myself?
12:54 triyo: Yes, I have one way you could.
12:54 uberjar-exclusions [#"(?i)^META-INF/[^/]*\.SF$"]
12:54 So something like …. uberjar-exclusions [#"(?i)^my_java_src/[^/]*\.java$"]
12:54 something like that.
12:55 That'd work
12:56 lgs32a: ^^^
12:56 And BTW, that approach is not really a hack unless there is an easier way.
13:06 lgs32a: triyo: ty
13:07 triyo: pleasure
13:11 pandeiro: i'm occasionally getting 'Wrong type argument: stringp, nil' message when trying to eval code with org-babel:clojure or start an nrepl session in Emacs. The nREPL session ends up starting anyway but I would like to identify what might be causing this. Anyone know where I can look? The *Messages* buffer shows it happening like so: 'list-files: Wrong type argument: stringp, nil'
13:51 nifff: is (rest vector1) as fast as (rest list1) ?
13:52 change in the front for vectors are slow?
14:08 jtoy_: anyone know what im ding wrong with this hiccup? https://
14:12 normally i use for, but i join here so im not sure how to do this
14:18 aaelony: joty_: did you wrap your code in (html … ) ?
14:18 TimMc: $mail nifff Calling rest on a vector doesn't produce a new vector, it gives you a seq over the vector.
14:18 lazybot: Message saved.
14:18 aaelony: Jtoy_: did you wrap your code in (html … )
14:19 jtoy_: see above...
14:19 https://
14:23 timvisher: so how does one go about programatically initiating a call to a static method?
14:24 i've got a bunch of static field symbols that I'd like to see the value of, but i can't seem to programatically generate a call to it
14:47 TimMc: $mail timvisher You can use Java's reflection API (see Class) to get ahold of static method handles, which can be invoked.
14:47 lazybot: Message saved.
15:16 wolfes: Is it possible to get an aleph server (run with lein) to restart itself automatically after code modification, like the way "lein ring server" works to restart ring servers? Project in question: https://
15:41 coventry: Anyone here gone through the pedestal tutorial? I'm having trouble getting the backend to work at the end of part one. I should do (use 'dev) and (start) in repls started in the tutorial-client and tutorial-service subdirectories, right? https://
15:46 kmicu: I. No problems spotted.
15:47 Always remember to 'lein clean/rm -rf out'
15:55 bbloom: odd thought: i've used sorted-set and sorted-map quite a bit, but i don't think i've ever once explicitly sorted a collection in clojure
16:01 coventry: kmicu: Yeah, this is from a fresh check out of v2.0.14, so there was no tutorial-client/out to begin with. Is it correct to initialize each repl with (use 'dev) and (start)?
16:25 shiranaihito: does anyone else find it annoying that an empty sequence is "truthy"?
16:25 in python they're not, right? i find that much more natural
16:27 kmicu: shiranaihito: No.
16:27 schmir: shiranaihito: it's not python...I've been a victim of that behaviour once..I hope I've learned it now
16:27 shiranaihito: schmir: what do you mean?
16:27 ("victim")
16:28 schmir: my program had a bug because of that
16:28 shiranaihito: umm..
16:29 schmir: the only thing I miss from python is py.test.
16:29 shiranaihito: how was it "because of that"? i mean, it's certainly possible to write bug-free code that relies on empty seqs being false
16:30 gfredericks: shiranaihito: the seq function is often used to transform emptiness to falsiness
16:30 for all collections not just seqs
16:30 shiranaihito: gfredericks: yes, i just found out about that idiom.. i just can't see why it _should_ be necessary
16:31 bts-: shiranaihito: to me it seems that any collection of values should be truthy, regardless of how many values there are in the collection
16:31 schmir: because I assumed some expression would evaluate to false but it didn't
16:31 shiranaihito: compare something like "if values: dostuff()" with "if len(values) > 0: dostuff()"
16:31 gfredericks: shiranaihito: it's a design decision. Doing it the other way would annoy other people who don't like having to enumerate a long list of falsy things
16:32 shiranaihito: schmir: well, doesn't that just mean you weren't aware of the behaviour, ie. not consciously benefiting from it?
16:32 gfredericks: e.g. "Everything is truthy except for false and nil and the empty list and the empty vector and the empty set and the empty map but not empty java collections or arrays but also zero and undefined and NaN
16:32 "
16:32 schmir: shiranaihito: it just means I been doing python for too long
16:32 shiranaihito: gfredericks: "Doing it the other way would annoy other people who don't like having to enumerate a long list of falsy things" <-- enumerating a list of falsy things? what exactly are you describing?
16:33 (or, referring to)
16:33 schmir: i'm not sure that's actually the case :p
16:33 cespare: shiranaihito: ruby, like clojure, has very simple truthiness rules (nil and false => false), and [] is true in that language.
16:33 shiranaihito: (as opposed to python, wehre you have you to memorize a bunch of rules)
16:33 schmir: shiranaihito: if you expect things to be like in python, you should probably use python not some other language
16:34 shiranaihito: cespare: well, once you're aware of "the rules" that "any empty data structure is considered 'false'", you can then get by with a lot less typing, not having to check for emptiness at every turn.. that's kind of the point here
16:34 cespare: any empty data structure
16:34 gfredericks: "Then why don't you just use X" seems to be a conversation stopper in "why isn't Clojure like X?" conversations :/
16:34 cespare: oh my, that sounds completely full of edge cases
16:35 shiranaihito: cespare: it's simple.. empty list = false, empty map = false, empty set = false, etc
16:35 gfredericks: shiranaihito: what about empty java collections?
16:35 cespare: it's not even obvious what the semantics of 'if []' should be... what are you even testing?
16:35 it's not natural to me.
16:35 shiranaihito: gfredericks: sure, why shouldn't an empty _java_-collection be false if other collections are?
16:36 (other empty ones, that is)
16:36 gfredericks: shiranaihito: so how do we decide what things count as collections then? is the empty string falsy?
16:36 what about (keyword "")?
16:36 shiranaihito: gfredericks: of course it is.. strings are sequences of characters in python
16:36 gfredericks: should we remember to tell newbs about that one too?
16:36 shiranaihito: gfredericks: and they can be manipulated like seqs
16:37 is (keyword "") an empty collection?
16:37 gfredericks: shiranaihito: the boundary between things that count and things that don't is not clear, and you have to account for any possible type I might create
16:37 shiranaihito: if not, is there anything to tell Newbie?
16:38 coventry: shiranai: You end up needing to let each type decide what its truth/false conditions are, as in __nonzero__, and it quickly gets confusing when you're trying to write type-agnostic functions.
16:38 bbloom: i'm not even sure nil should be falsy....
16:38 gfredericks: what about instances of (deftype Gary [] clojure.lang.Counted (count [_] 0))?
16:39 shiranaihito: coventry: sure, if you want to test a custom object's truthiness like that, then you need to implement "nonzero".. but is that a problem? you'll know you're dealing with your own type anyway
16:39 gfredericks: this also allows objects that can change their truthiness
16:39 shiranaihito: gfredericks: i don't know what that does (new to clojure), but i doubt that's an empty collection either
16:39 gfredericks: shiranaihito: it doesn't look like one but (count (new Gary)) returns 0
16:40 shiranaihito: gfredericks: what's your point?
16:40 bts-: shiranaihito: it's the declaration of a new type that participates in the "Counted" protocol
16:40 bbloom: shiranaihito: since you're new to clojure, maybe you should *try it for a bit* and see if you change your mind or have formed a more informed opinion?
16:41 shiranaihito: bbloom: i just wanted to ask for opinions now.. i can't see a problem with that
16:41 so far, i just can't see the benefit
16:41 gfredericks: shiranaihito: that the current behavior is super simple and not too annoying in practice, while your proposal has a _lot_ of gray area
16:41 bbloom: the issue is that it's a very subtle design decision, of which clojure is full of many
16:41 shiranaihito: but i can see how this design decision causes me more typing compared to python
16:41 coventry: In pedestal, is there a way to pull out the messages which are creating the development view (like in the recording feature of the data UI?)
16:41 bbloom: it's meaningless to discuss this particular issue without discussing the larger philosophy of the language
16:42 and that discussion will be useless unless you have an intuitive feel of the choices clojure makes in the various design spaces
16:42 shiranaihito: gfredericks: i don't see the gray area, as long as everything works consistently, like in python (afaicr)
16:42 bbloom: shiranaihito: the counted 0 thing is already a gray area, he pointed one out
16:42 and java collections
16:42 shiranaihito: bbloom: that seems overly complicated/vague
16:43 coventry: shiranai: things don't work consistently in python, that's the point of gfredericks example. The python cognate would be an __nonzero__ method which just returns false.
16:43 gfredericks: shiranaihito: exactly -- but you'd have to make a decision about that
16:43 bbloom: shiranaihito: precisely. that's why you need more exposure to the language before you can understand the motivation for such decisions
16:43 kmicu: shiranaihito: do not compare clj to python, pls
16:43 shiranaihito: bbloom: well, if his examples were not examples of empty collections/data-structures, then i can't see their relevance to empty collections evaluating to false
16:43 coventry: Well, actually, a __len__ method which always returns 0.
16:43 bbloom: what is a collection anyway?
16:43 what makes something a collection?
16:43 hyPiRion: Are we talking about falsey values?
16:43 gfredericks: hyPiRion: yeah
16:43 shiranaihito: hyPiRion: yes
16:43 hyPiRion: Oh
16:43 * hyPiRion leaves again
16:43 coventry: (Not that I'm down on python, it is my bread and butter.)
16:43 bbloom: lol
16:43 bts-: haha
16:44 shiranaihito: coventry: as mentioned, you may have to implement nonzero for your own types, but the standard ones do work consistently, if i recall correctly.. if that's the case, then i can't see a problem
16:44 consistency is key
16:44 bbloom: shiranaihito: nevermind the fact that this would slow down EVERY BRANCH OPERATION
16:45 plus you can trivially create an ify macro that calls a non-zero protocol method, if you really wanted this
16:45 shiranaihito: bbloom: um.. i guess? sometimes syntactic elegance requires a tradeoff in performance
16:45 coventry: pedestal need a dedicated IRC channel. :-)
16:45 bbloom: shiranaihito: and clojure made some trade offs for elegenace vs perfrmance. you proposal lies on the other side of the line drawn in the sand
16:46 shiranaihito: bbloom: hm.. well, i would be interested in circumventing this problem, once i know enough to do it
16:46 bbloom: yes, it is, in fact, clear to me that this is the way clojure works :p
16:46 bbloom: in the unlikely event that you still think this is a "problem" after learning clojure, you'll find it quite easy to "circumvent"
16:46 shiranaihito: cool :p
16:46 but yeah, at least for now, i can't imagine why i wouldn't prefer the python way
16:47 and this is the _only_ problem i've seen with clojure so far
16:47 gfredericks: I doubt anybody likes everything about clojure
16:47 bbloom: because explicit is better than implicit
16:47 and in the face of ambiguity, resist the urge to guess
16:47 ~zen ?
16:47 clojurebot: excusez-moi
16:47 coventry: bwahaha
16:47 shiranaihito: bbloom: that sounds like the python zen thingy :P
16:47 bbloom: shiranaihito: yes. yes it is.
16:48 and i think clojure is far more zen than python ;-)
16:48 give it time!
16:48 gfredericks: the cool thing about clojure is that, despite being complicated and messy and often not exactly what I would have done, its value for writing practical software consistently seems to be an order of magnitude higher than any other language
16:48 shiranaihito: gfredericks: huh? :p what's not to like? (besides this, that is :p)
16:48 coventry: The debugging facilities leave a lot to be desired.
16:49 gfredericks: okay everybody name your favorite problem with clojure
16:49 shiranaihito: :P
16:49 kmicu: trolls
16:49 bbloom: the primitives aren't namespaced! grrr
16:49 shiranaihito: well this should be interesting :P
16:49 technomancy: startup tiiiiiiime
16:49 shiranaihito: mmm
16:49 coventry: drip
16:49 bbloom: says the guy who writes the only tool i ever "startup" :-)
16:50 shiranaihito: technomancy: you may have a point there :)
16:50 hyPiRion: The solution is right here: (defn falsey [] (proxy [Object] [] (equals [_] true))) -> (if (= (falsey) false) "wohoo")
16:50 technomancy: bbloom: the only person daft enough to write a CLI tool in clojure you mean?
16:50 kmicu: http://
16:50 hyPiRion: you just have to do (= object false) every time!
16:50 bbloom: hyPiRion: ##(doc false?) noob
16:50 lazybot: ⇒ "([x]); Returns true if x is the value false, false otherwise."
16:50 bbloom: :-)
16:51 technomancy: yeah something like that
16:51 hyPiRion: bbloom: but that doesn't work with my trick
16:51 also (= false (falsey)) doesn't work either
16:51 apart from that the solution is perfect.
16:52 shiranaihito: technomancy: why is it daft to write one? .. i figure you're being at least half-sarcastic, but .. ? :)
16:52 gfredericks: bbloom: when you say "primitives aren't namespaced" you mean the special forms?
16:52 bbloom: gfredericks: yeah
16:52 cespare: shiranaihito: a cli tool is obnoxious when it takes multiple seconds to start
16:52 gfredericks: yeah I thought of that recently too
16:52 shiranaihito: kmicu: i'll check that out :P
16:52 cespare: ah right.. good point :)
16:52 kmicu: shiranaihito: you should
16:53 gfredericks: I think my least favorite things are the idioms with (seq x) and (some #{x} coll)
16:53 technomancy: shiranaihito: because the startup time is so awful, plus you can't realistically launch any JVM program without a shell shim anyway
16:53 bbloom: gfredericks: try (defn if [test then else] :blah) then (if 1 2 3)
16:53 gfredericks: bbloom: yeah I'm familiar with how the special forms work
16:54 shiranaihito: gfredericks: is (seq x) meant for what i'm talking about here? checking for an empty collection?
16:54 llasram: The JRuby people go so far as to have a C shim which links to libjvm
16:54 technomancy: inb4 contains?
16:54 bbloom: gfredericks: it sucks much if you're tinkering with a little interpreter
16:54 gfredericks: shiranaihito: yeah it's recommended for checking for non-emptiness
16:54 shiranaihito: gfredericks: and you find it a problem? .. so basically you're saying you agree with me? :P
16:54 ie. needless typing, etc?
16:54 gfredericks: shiranaihito: no, my complaint is not yours
16:54 shiranaihito: but?
16:55 gfredericks: shiranaihito: my complaint is I wish there was a separate function called not-empty?
16:55 rather than seq recommended for that
16:55 shiranaihito: hmm
16:55 gfredericks: I have no complaint about the truthiness rules
16:55 hyPiRion: gfredericks: (if-not (empty? x)
16:55 gfredericks: hyPiRion: yes but that is derided as unidiomatic
16:55 hyPiRion: I'm a rebel and do that sometimes.
16:55 kmicu: shiranaihito: about rationale behind empty coll-s, Rich talked about this in a presentation about Reducers (combine part). I do not remember which one ;)
16:55 hyPiRion: I know.
16:55 gfredericks: hyPiRion: so maybe it's mostly a complaint with the recommendation and not the language itself
16:55 technomancy: lol... falsy empty collections are so weird.
16:55 shiranaihito: kmicu: hmm.. that would be interesting to see :p
16:57 hyPiRion: gfredericks: It's the idiomatic thing to do in Swearjure, if you're able to represent it in Swearjure that is.
16:57 gfredericks: hyPiRion: phew; time to start porting
16:59 hyPiRion: Perhaps I really should consider writing that SwearjureScript compiler, which compiles down to JS without alphanumerics. At least debugging would be just as easy in the compiled code and in the original one.
17:27 coventry: What's the difference and potential advantage of (def f #'ns/g) vs (def f ns/g) when doing interactive development?
17:37 llasram: coventry: When you use an identifier which resolves to a var, the generated code will implicitly dereference the var when run. In the case of definitions like your example, "when run" means "when defining the value of `f`"
17:38 So `f` will point to whatever value `ns/g` held at the time the `(def f ...)` form is evaluated
17:39 When you use the `#'` reader macro (or the `(var ...)` it expands to), you reference the Var *itself*, which is a Clojure reference type
17:39 hyPiRion: coventry: if you redefine ns/g later on, f will point to the newly defined ns/g if you store it as #'ns/g.
17:39 if you store f as ns/g, then you'd have to redefine f as well if you've redefined ns/g.
17:39 llasram: hyPiRion: I was getting there :-p
17:40 hyPiRion: ops, sorry :( I noticed you gave a more detailed response
17:41 llasram: Probably too detailed though, so all good
17:45 coventry: Thanks, guys. That sounds useful.
18:03 Kidee: hello, i'm long time scheme user, what analogue of synamic-wind i can find in clojure?
18:04 bbloom: Kidee: try/finally
18:04 finally blocks are dramatically simpler in the absence of continuations
18:05 Kidee: bbloom: thanks
18:05 bbloom: see also with-open and friends
18:05 Kidee: okay, thanks again. :)
18:07 chord: do you guys think that clojure will beat scala
18:07 Raynes: Nobody wants it to beat Scala.
18:07 They're not mutually exclusive.
18:08 I sure hope round doorknobs beat handles!
18:08 :p
18:08 bbloom: HANDLES4LIFE
18:08 chord: Raynes: clojure will beat scala
18:09 Raynes: Okay.
18:09 I appreciate the insight.
18:10 chord: Raynes why do you think otherwise
18:10 Raynes: Because they're not really competing.
18:10 chord: so you don't know
18:13 seangrove: Thought bbloom was talking about an irc philosophy of permanent nicknames
18:14 bbloom: seangrove: just wanted to fan the flame war. personally, i'm more of a fast sliding automatic doors guy. let's hurry up with that whole future thing
19:01 coventry: kmicu: Thanks a lot for responding to my github pedestal issue.
19:17 clj_newb_2345: what is the correct way to ensure that a docker container gets a particular ip address?
19:17 so I have setup a docker image that contains ssh + firefox
19:17 now, I want to ensure that when I run this container, it get s particular ip address
19:17 how do I ensure this?
19:18 damn it
19:18 wrong chaannel again
19:18 sorry everyone
19:19 Foxboron: clj_newb_2345: i was about to ask :)
19:22 futile: Are there any tools that tell me what vars exist in a given lein project and what file/line they're on?
19:33 callen: futile: I'm told text editors do this well.
19:33 futile: I mean Clojure library.
19:33 callen: futile: one could also use cat, grep, sed, and awk.
19:33 grep -R "def" .
19:34 futile: Oh my.
19:34 callen: you don't need a clojure library, just knowledge of the shell.
19:34 futile: "(definitely a bug)"
19:34 Oh look, a wrong match.
19:34 coventry: futile: nrepl can do this. "lein pom && mvn dependency:sources;" in your project directory, then in emacs, M-. on the symbol in question.
19:34 callen: coventry: that's pretty nifty, thanks.
19:35 futile: coventry: thanks, although the idea is to embed this in another text editor so I don't know if nrepl will do the trick.
19:35 callen: lol.
19:36 coventry: futile: Look at the code for source and source-fn, they must be doing something close to what you want: http://
19:36 futile: thanks coventry
20:13 cespare: trying to make a lein hello world. lein run -m hello.core works fun, but after I 'lein uberjar' and try to run 'java -cp target/hello-0.1.0-SNAPSHOT-standalone.jar hello.core' I get Error: Could not find or load main class hello.core
20:13 ideas?
20:17 hyPiRion: cespare: should be sufficient to just to "java -jar target/hello-0.1.0-SNAPSHOT-standalone.jar" Does that work?
20:17 whilo: i am playing with pedestal. i have now done (app/build example-app) and (app/begin example-app) on a clojure repl, with a modified tutorial-client app to play around in a mini repl. i can send messages and they are reflected in the data, but jvisualvm shows io.pedestal.app.util.scheduler to basically run at 100%
20:18 what am i doing wrong?
20:18 cespare: hyPiRion: same thing
20:18 hyPiRion: (I also put :main hello.core in my project.clj)
20:19 hyPiRion: cespare: do `lein upgrade 2.2.0`, `lein uberjar` and you should be set. And then wait for 2.3.1 to come out
20:21 cespare: it's technomancy/leiningen#1283 if you're interested. It's already solved, Phil is just waiting to ensure not more bugs are out there.
20:21 lazybot: Bug in provider profile in 2.3.0 -- https://
20:22 cespare: hyPiRion: same thing
20:26 hyPiRion: the relevant classfile seems to be in the jar.
20:26 it's pretty strange
20:26 man, I have such a terrible experience every time I use anything on the jvm
20:26 always leaves a nasty taste in my mouth.
20:39 glosoli: hey do I understands correctly that in Clojure, when you are making data structures out of existing one i.e. using conj , references are retained to the old one instead of creating all the elements from scratch ?
20:43 Foxboron: glosoli: there is a talk rich gave one touching on the theme
20:44 glosoli: http://
20:44 a tad out in the movie
20:44 or talk*
20:45 kurisumasu: glosoli, it uses structural sharing, so updates are really cheap. But you can reason about them being completely different values, leaving the "how they're actually built" as an implementation detail.
20:46 glosoli: Foxboron, kurisumasu thanks
20:47 kurisumasu: glosoli, you *do* take some performance hit compared with some ephemeral data structures in some cases, but for most stuff the performance is on-par (and for some cases you get better performance, and with less trouble/headaches).
20:48 glosoli: I am too new for that, I am still reading a book on Clojure, and just wanted to make sure if I understood the statement of Clojure not doing deep copies correctly
20:52 kurisumasu: glosoli, ah, okay :)
21:07 qed: If I have a string that is a method, how do I call it from clojure? like (.toString [1,2,3]), what would I do if I wanted to call "toString"
21:15 bbloom: qed: using standard java reflection primitives via interop
21:16 qed: unless you only have a small set of known things you want to call, then you're better off just making a fixed map of those
21:24 qed: bbloom: could you give me an example?
21:24 bbloom: this is being done in the context of a macro FWIW
21:25 bbloom: {:to-string (fn [x] (.toString x)) .....}
21:25 oh, if it's in a macro, then you can probably ~(symbol ".toString")
21:29 qed: bbloom: oh, duh
21:29 bbloom: thanks
22:01 devn: https://
22:02 bbloom: devn: is there a particularly reason you're asking me, rather than more generally?
22:03 devn: no, i just knew you were around and know that you're a really smart dude
22:03 bbloom: i updated that gist btw, i had something obvious messed up
22:03 here's the issue:
22:03 (meth->pred "isJavaScriptEnabled") returns foo.bar/is-java-script-enabled? as expected
22:04 when I call it though: IllegalArgumentException No matching field found: isJavaScriptEnabled for class clojure.lang.LazySeq clojure.lang.Reflector.getInstanceField (Reflector.java:271)
22:04 why does it think it's a lazyseq?
22:04 bbloom: have you tried macro expand?
22:04 devn: yeah
22:04 (clojure.core/defn is-java-script-enabled? [c__2583__auto__] (clojure.core/let [client-opts__2584__auto__ (yokogiri.core/get-client-options c__2583__auto__)] (.isJavaScriptEnabled client-opts__2584__auto__)))
22:05 Raynes: devn: The problem is that your predicates should never do meth.
22:05 devn: haha, why did i know someone was going to bring up meth
22:05 bts-: not even once
22:05 Raynes: You should have known who as well.
22:05 devn: Raynes: to be totally honest with you, i think in the back of my mind i knew it would be you or callen
22:06 Raynes: Dear God, callen, we're getting lumped together in things now.
22:06 I think we need to take some time off.
22:06 devn: Raynes: any idea on what's up with my macro?
22:06 Raynes: Oh, you wanted me to be helpful. Sorry. One moment.
22:06 devn: haha
22:07 i think it's the let
22:08 but im not sure how to fix it. I need to unquote the result of get-client-options, but that blows up because it doesn't know what c# is yet
22:10 Raynes: devn: What is get-client-options?
22:10 bts-: do you mean to be calling isJavaScriptEnabled on the client options instead of the client?
22:10 devn: Raynes: (.getOptions client)
22:10 bts-: yes
22:11 Raynes: Well.
22:11 That's what you're telling it to do.
22:11 devn: heh, well, i found a solution
22:11 everyone stop what you're doing
22:12 err, if you're looking at why this wasn't working
22:12 it's 100% my fault
22:12 get-client-options changed and needed to be re-evaled
22:12 * devn has a sad face right now
22:12 Raynes: I was about to say, this macro does exactly what you've told it to do. :P
22:13 xeqi: true of programs in general
22:13 devn: Raynes: i had changed get-client-options to a thingy which would return a map of all the current options
22:13 Raynes: xeqi: Especially Chef.
22:13 devn: which is why im writing this macro
22:13 anyway, gotta run, thanks guys
22:14 Raynes: You're welcome.
22:14 I'll happily tell you that your macro works any day!
22:17 ambrosebs: are there snapshot releases of clojurescript on maven?
22:17 or more likely sonatype
22:20 Bronsa: cool. emacs just crashed while opening Compiler.java
22:40 axle_512: Does anyone know if core.cache has support for "weight". (Guava caches have this feature)
22:41 Guava says: if your cache values have radically different memory footprints -- you may specify a weight function with http://
22:41 Is there something similar in clojure.cache?
23:31 ystael: Anybody know how to make clojail.core/thunk-timeout pass *out* along to the thread it spawns?
23:32 actually, don't answer that
23:32 sorry