0:32dnolen: ibdknox: I would argue yes. But the reason why is complex - it often gets foisted on us - time constraints, programming languages etc

0:36ibdknox: dnolen: hm, I think my argument is that complexity seeps into any non trivial system, and that the general purpose of building the system to begin with is to provide an interface to something that is otherwise difficult. The greatest value is derived from maintaining a simple abstraction to hide the fact that the implementation is likely painful. There are certainly times where you have to swing one way or the other... bu

0:36 t in general a thing isn't very useful if it's too complicated to use efficiently

0:37dnolen: ibdknox: we are in agreement. and that's a fundamental Clojure stance.

0:37 "reasoning under concurrency is totally lame", let's fix that by any means necessary is Clojure's MO.

1:36 kab3wm: have you run into anything you wish was better explained/is confusing?

1:37kab3wm: ibdknox: well, everything is confusing at the moment.. but I'm getting the hang of it. My issues are more with poorly documented libs. Like congomongo. But I've got basic CRUD stuff working with Noir and a MongoDB at the moment.. so hopefully it's mostly down hill from here.

1:38zakwilson: Congomongo has great documentation as long as you're willing to read the source.

11:21eanxgeek: cark: Bronsa: just as a fyi, I'm actually trying to simplify a snippet of code that someone else had written where they use (let [client (new DefaultSelenium (:host opts) (:port opts)...

13:42ghiu: i have exported (leiningen localrepo) a java .jar to my local repository. i've added it to the solution and with leiningen i have it now in my lib/ when i try to include id, i have a java.lang.ClassNotFoundException exception. any idea?

13:44gfredericks: amalloy: isn't it weird how programmers have been deploying things for decades now and we still think it's hard to do anything that survives a reboot?

14:00sid3k: hi all. I solved first 40 problems at 4clojure and now need a free online guide to continue. None of the clojure books has a kindle version. is there any guide considered as the best one by the community?

14:04amalloy: but a general-purpose lazy sort isn't as useful as something more specific for your problem. like, if you know in advance you need the two largest elements you can do better than lazy-sorting the whole thing

14:33gfredericks: daniel__2: rand-nth was probably a bad suggestion, since that doesn't help you know where to update

14:38daniel__2: im just playing, how would i modify a character by a small amount? i can get the unicode code point and increment it but im not sure what the opposite of codepoints is to convert it back toa char

16:38gfredericks: I think amalloy suggested it because then the algorithm that does the mutation and such doesn't need to know the details of how the fitness function is computed -- it just takes the fitness function as an argument

16:52brehaut: gfredericks: re side-effects in iterate, the docs explicitly state that the function must be free of side effects; that means that iterate has the potential to do reordering of operations in future versions which would produce weird results with side effects.

16:56brehaut: implausible or not, I'm not sure its wise to encourage people to write code outside of the guarantees of the core functions

16:57amalloy: brehaut: for some things, like reduce, i agree. but the docs for iterate are just lamely reminding you that pure functions are good; there's no way they could reorder or depend on purity in any way

16:57gfredericks: it's bizarre that the docs for iterate say such a thing while other functions like split-with do not. And split-with will certainly call your predicate twice as often as necessary

19:54icefox: amalloy: simple things like, function foo isn't documented, or function foo is deprecated and any code that uses it should be upgraded. The Linux project started the idea of janitors as a way to help get new developers into the Linux project. In trade for doing janitor type tasks the devs promise to review and help them get familiar with the code base

19:54amalloy: ibdknox: in fairness, i couldn't answer his question even if i did know, because i don't know much about cljs

20:35kab3wm: ibdknox: Noir question for you.. is there any way to conditionally insert a partial if a flash message exists? The problem I'm running into is if I check if flash-get exists, it pops it and I can't access it after that.

23:22zodiak: metajack, I would ~guess~ that clojure deals with looking at what the String java lib expects (a string) and if it's nil, then all that the function can return is nil, whereas, the java function has no idea about how to handle nil's in strings