0:37 the ticket in question says "Affects Version/s: Release 1.4, Release 1.6" — does this mean that I'd have to checkout the respective tags from the git repo and apply my changes in each one separately?

3:48dfletcher: Man, I really appreciate how much clojure reads out like English sometimes. Two neat ones from this file I'm looking at: (.load fxml stream) (.lookup node "#HBox") both doing exactly what they say :)

3:51Sizur: i'm really happy that there is a resurgence of homoiconic languages

3:52dfletcher: it affects my naming of things a bit. "node" was a better choice than "root" so resulting code reads much nicer. and "fxml" instead of "loader" similarly.

3:52 (.load root "#HBox") is a little less informative and more misleading. not loading any root anything here ;)

4:05 Hmm. Bed or put on a movie and write clojure 'till 4am? I think we all know where this is going.

4:08 I decided to go with this neat thing for parsing command line opts https://github.com/clojure/tools.cli .. does anyone think it's a terrible idea to re-def a global after parsing args and let rest of program read that? else pass it around everywhere?

4:10 after init time it would ofc be treated entirely as a constant. seems a bit nicer to me than passing config into everything.

4:14 I guess the example does pass the results down into everything. Hmm. Alright nevermind talked myself into it I'll go as clean as possible.

4:28irctc: Can someone explain what is going on here (first (first (map #(do '(%)) (range)))). It returns p1__4908#. Probably it has something to do with lazy seqs. If i do not wrap the % in a list it works as expected.

4:33chipf0rk: you're quoting the list containing the unique symbol that clojure generated to use instead of %. if you want to construct a list, use list. for this specific way of doing things, you could use syntax-quote with splicing instead:

7:25justin_smith: chipf0rk: for example {:a 0} returns a PersistentArrayMap and if you assoc enough keys onto it you get a PersistentHashMap back. If you coded against those types, it would be a pain in the ass

7:26 but instead, you can code against the interfaces / protocols (like clojure.lang.Associative), and it's not an issue

7:26zoldar: justin_smith: I think you are adressing the wrong person :)

7:45justin_smith: oddcully: speaking of, the other day I was reading about a mail anonymizer, where on their home page had a link to a cracked copy of the app (normally cost $200+). The cracked copy was a trojan that added your computer to their mailer relay botnet.

7:46 the fact that they went ahead and said "here's the cracked version if you don't want to pay for it" on their own site is hilarious

11:16kaiyin: i have a 0.1M by 20M matrix that i want to store on harddisk but also make it accessible from clojure without needing to read the entire thing into ram, could anyone suggestion a solution?

12:49sobel: here's the thing. you already have a jdbc library. you won't reuse any part of the domain access library. it will need modification as your schema grows/changes. or maybe reimplementation if the data system changes significantly.

12:58 if you really find that syntax highlighting is that useful, either your sql-fu is insufficient or the size of query you are cramming into the application adapter is too big. you should probably consider a stored proc or view to keep that under control. the bigger the query, the more likely it tightly couples your app to the schema and that coupling is something you need to manage.

13:00 if you really find that you need to share sql between projects, you might consider that either your sql-fu is insufficient or the size of the query you are cramming into the app...blah blah blah...implement a remote facade pattern to share useful access patterns you want to expose to applications. if they are really sharing access patterns, let them share a library too. a sql file isn't a great way to share code though.

13:02tatut: syntax highlight is evidence of *-fu? I use syntax highlighting in all langs I work with :)

13:05wasamasa: btw, there are programs that can syntax-highlight multiple languages at once :P

13:05pandeiro: does anyone have experience using session cookies with single page apps that do CORS requests to a different host or port? my api server is returning the Set-Cookie header but it seems like the browser (Chrome) is ignoring it

13:05sobel: if you don't already test your schema in CI the process is deficient

13:06 so the "more work" argument holds no weight with me. if you have a database and don't test it you're missing a spot.

13:08sobel: you can do that, and you can rip them out of clojure to edit them in a syntax-aware buffer. it's not that hard but it's harder than keeping my stuff in adapter code simple, since my scope includes all the sprocs anyway

13:08ruhe: how do you construct your yesql-based code (or any other similar framework) if you need to translate complex query from complex search form into SQL? Are there examples of such code on github?

13:13sobel: tatut: ask any DBA at a finance agency how many times the max loan size trigger has been tripped by an app gone haywire, attempting to create loans for untold millions. if i hadn't seen it in person i wouldn't be such a proponent of using databases as full safety backstops.

13:13acyed: I know that's kind of random, but I've done some modeling in clojure and I need a second set of eyes

13:14tatut: sobel: but as both the app and the sprocs are code, both must be tested... why is sproc code inherently safer than app code?

13:14sobel: tatut: it's entirely possible for an application to become compromised in a way that can be mitigated by appropriate role restrictions and data constraints in the database

13:17tatut: I get the abstraction part, that could be useful... but I still don't get the security part

13:17TimMc: The only place I've worked with a true DBA there was so much territoriality about the DB.

13:18amalloy: acyed: better to ask your actual question, and hope someone qualified sees it, than to ask for volunteers to help with an unknown task

13:19tbaldridge: TimMc: eh, it can depend on the Job. One place I worked, I was basically the DBA, and all that meant was I handled all sproc implementations and optimizations. Why? Because I was good at it, the only reason.

13:20 No reason for the entire team to learn all the ins and outs of a query engine, just tell one guy (or two or three), and let him spend the time to get it all working properly.

13:20sobel: tatut: you can harden data access in the database in ways you cannot harden it in the application.

13:22 When I said "hahaha DBA" I was thinking about how lots of places don't *have* them.

13:24sobel: tatut: it's a great question you can get fully fleshed out on #postgresql but the short version is, databases have a scope-limited duty that makes them a good target for enforcing relations and constraints. then there are some things only a sproc can do (upsert for one popular example)

13:25 TimMc: gotcha. in my experience DBAs are always presiding over some nominal conflict for control.

13:25 my current job has what seems to be the blasted-out remains of a battle not even valiantly fought over control of the db

13:28acyed: http://pastebin.com/AeT1MYc9 This is a program I've written to model the trajectory of a 105mm howitzer round side fired from a C-130 to predict the impact point of the bullet. I'm having a hell of a time getting the solution right (I have a ballistics table that gives me the gun depression and lag angles for most altitudes and airspeed). This is more of a physics question, not a clojure question, but I've been working on it for two we

15:18 The issue is that if an exception is thrown somewhere in the let block then the cleanup that happens on the last two lines dont happen. Which when running with auto-refresh means all the other tests fail. I imagine that I need to use a (try (…) (finally)) block. but thats difficult as if I put it outside the let, then then finally doesnt have lexical scope, and If i put it within, then I can catch the whole thing. Im not sur

16:20justin_smith: $mail underplank define a promise in an outer let block, wrap try/catch/finally around the inner and deliver to that promise, clean up the thing delivered to the promise in the finally, but only if (realized? p) returns true

17:38joelkuiper: Hey, I'm trying to use/make a rudimentray type hierarchy in ClojureScript. The problem I hope to solve is the following: I have a series of (reagent) components that I want to be of a certain "type", such that when a user add a component I can make sure it's of the right type (and filter option lists with isa? or decendants). However, I'm not sure multimethods are appropriate, and I'm also not sure how

17:38 to use the build-in type hiearchy on something other than ::stuff (things are defined in different namespaces)

17:40 Would it be possible to somehow "annotate" functions or maps with the (derive x y)?

17:42tomjack: I'm not sure that "when a user add a component I can make sure it's of the right type" actually describes a problem

17:45joelkuiper: tomjack: yea, you're right. It's more explained in this blog post https://joelkuiper.eu/knowledge; but in short there are a bunch of UI components that can be nested, however they can only be nested at certain places. For example a Markdown block is a Text block, but so is a plain text one. Similarly a sliders is a Number input, but so is a Number field. There is a hierchy of types that I wish to expre

18:04 tomjack: and yeah a user, it's a UI feature...the term type is perhaps a bit confusing

18:15justin_smith: is there a trick to using core.async with component? ava.lang.ClassCastException: clojure.core.async.impl.timers.TimeoutQueueEntry cannot be cast to clojure.core.async.impl.timers.TimeoutQueueEntry

18:16 I guess for now I won't use :reload-all when requiring my top level namespace in the repl

22:11 what is the best way to use reduce to apply the more computation to the output of the previous function? (map #(clojure.string/replace (.toLowerCase "test string") (first %) (second %)) '([#" " "_"] [#"\?" "_"] [#"\%" "_"]))