#clojure logs

2013-01-20

00:05ChongLianyone here use evil-mode seamlessly and successfully?
00:05ChongLiI tried it for a bit and it broke my brain
00:09ChongLiI got really confused about which regular emacs bindings are available in which mode
00:09ChongLiespecially with paredit
00:09ChongLiwhich seems to operate differently in normal mode vs insert mode
00:16amalloyludston, mattmoss: re pi factorial: http://en.wikipedia.org/wiki/Gamma_function
00:18amalloygamma(pi + 1) is about 7.188, apparently, so i'm gonna say that's pi factorial
00:23technomancyheyyyyy look at that: https://github.com/technomancy/leiningen/tree/2.0.0
00:24ChongLinice work!
00:25ChongLihmmm
00:26ChongLithe one on the AUR is outdated
00:26ChongLilsat updated 2012-07-22
00:26technomancyyeah, typically I recommend installing by hand
00:26ChongLiI probably ought to do the same with clojure
00:26technomancynah
00:26technomancyjust skip clojure entirely
00:27ChongLino I mean let lein install clojure
00:27technomancyoh right, yep
00:27ChongLiinstead of using the one in arch community
00:27mmarczyktechnomancy: whoa, great! congrats :-)
00:27technomancyI should update the nix recipe
00:27technomancymmarczyk: thanks
00:27technomancyfeels good to have it out
00:28gdevi've opened a beer to celebrate =D
00:28ChongLiI've heard openjdk7 is not recommended with clojure; why is that?
00:29ChongLiis it just performance?
00:29technomancyChongLi: openjdk7 is highly recommended for clojure
00:29amalloyChongLi: i've never heard that. 7 works fine, as does openjdk
00:29ChongLioh ok
00:29ChongLiI guess I heard wrong
00:30amalloythe only incompatibilities i've heard of are some occasionaly problems with 64-bit jvms on macos
00:30ChongLiwell the mac platform is really weird
00:30amalloyand that was like a year ago, so who knows now
00:30technomancythere are some people with left-over hate for openjdk from way back in the day when it lagged behind the sun one
00:30technomancybut that was a long time ago
00:31ChongLiI like openjdk because it's free software :)
00:31technomancyother acceptable reasons include because you hate Oracle, or also because you hate Sun.
00:31ChongLiwell, I didn't mind sun so much
00:31ChongLibut I hate oracle
00:32ChongLisun did some nice stuff right up until they were bought by oracle
00:32ChongLiwho then sent the community scrambling to fork everything
00:37technomancyyou could also just hate Larry Ellison
00:37technomancyor you could hate patent trolls in general
00:37technomancylots of good reasons
00:37ChongLior patents in general
00:37ChongLihaha
00:38ChongLiI've never been able to make up my mind whether to hate the players or the game
00:40ChongLianyone have the michael bolin closure book from oreilly?
00:41ChongLiwondering how good it is
00:42ChongLiit seems a lot of languages that compile to javascript can really benefit from closure and its compiler
00:45tomojwhy would I get "java.lang.ClassNotFoundException: swank.swank" from `lein ring server` but not from a swank repl?
00:46tomojhmm.. moving the dep on swank-clojure from :dev :dependencies to just normal :dependencies fixed it
00:49gdevglad we could be your rubberduck
00:50ChongLigdev: where'd that term come from?
00:51gdevChongLi: I read about it in a pragmatic programmers book
00:51ChongLiah here we go
00:51ChongLihttp://en.wikipedia.org/wiki/Rubber_duck_debugging
00:51ChongLihahaha
00:53gdevthe rubber duck I use at work is a sticky note on my desk with a duck drawn on it that says "re-write it in clojure"
00:53ChongLihahaha
00:54ChongLithat is great
00:54ChongLithat's basically the solution to all problems: "it's written in the wrong language!"
00:58gdevyeah but it's hard selling that idea in a place that requires all new hires to get java certification within the first 6 months
00:59ChongLithat's their loss
00:59gdevlearning clojure and studying for the scjp has been interesting though
00:59ChongListill, learning clojure can make you a better java programmer
00:59ChongLilearning any language that changes how you think can help
01:00gdevyes, thank goodness i followed the "learn a new language ever year" advice from the pragmatic book
01:00ChongLijava can be really hard to improve on though; particularly in situations what enforce rigid requirements on architecture
01:09gdevYeah I know, I worked on a project that used struts and spring and flex, etc. is there a such thing as framework creep?
01:28ChongLioh yes
01:29ChongLipart of the clojure philosophy is to use small, composable libraries instead of big monolithic frameworks
01:42luxbockwhy doesn't (map ffirst (partition 3 (range 9))) work?
01:43luxbock,(map ffirst (partition (range 9)))
01:43clojurebot#<ArityException clojure.lang.ArityException: Wrong number of args (1) passed to: core$partition>
01:43luxbockerr
01:43luxbock,(map ffirst (partition 3 (range 9)))
01:43clojurebot#<ExecutionException java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Don't know how to create ISeq from: java.lang.Long>
01:44cark,(map first (partition 2 (range 9)))
01:44clojurebot(0 2 4 6)
01:45ChongLi,(ffirst (partition 3 (range 9)))
01:45clojurebot0
01:45ChongLito map ffirst you'd need another layer of nesting
01:45luxbockahh doh, I'm dumb
01:46ChongLi,(map ffirst (partition 3 (partition 3 (range 81))))
01:46clojurebot(0 9 18 27 36 ...)
02:17seangrove$seen emezeske
02:17seangroveAh, no lazybot
02:19seangroveDamnit, can't run the tests for lein-cljsbuild
02:19seangroveMust be missing something basic
03:08jaimef/me hunts for what is required to get (use 'clojure.contrib.json) to work without a file not found exception. classpath points right to clojure-contrib.jar. repl won't find it however
03:08jaimef
03:08jaimef/me hunts for what is required to get (use 'clojure.contrib.json) to work without a file not found exception. classpath points right to clojure-contrib.jar. repl won't find it however
03:08jaimef
03:08jaimefhmm
03:08dnolenjaimef: clojure.contrib is deprecated
03:08jaimefhttp://clojuredocs.org/clojure_contrib/clojure.contrib.json/read-json is this not accurate then?
03:09dnolenjaimef: use data.json or cheshire https://github.com/dakrone/cheshire
03:10dnolenjaimef: just avoid clojure.contrib namespace projects, those days are long gone.
03:11jaimefthanks
03:13jaimefso is there an easy way to require it from the repl?
03:36muhoothis seems goofy. isn't there already some function in aleph/lamina that does this? https://www.refheap.com/paste/8805
03:59luxbock,(reduce #(+ (* %1 2) (- (int %2) 48)) 0 "11111111")
03:59clojurebot255
04:00luxbock,(int "11111111")
04:00clojurebot#<ClassCastException java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Character>
04:00luxbockcan someone explain this?
04:01luxbockisn in this function?
04:01luxbockerrr
04:01luxbockisn't %2 assigned to "11111111"?
04:02azkanethe string becomes \1\1\1... i guess
04:03luxbockoh right
04:04luxbockwhat's the proper way to convert a string representation of a number into an integer? so "42" becomes 42?
04:04luxbockInteger/parseInt?
04:05hyPiRionluxbock: correct
04:05hyPiRion,(Integer/parseInt "11111111)
04:05clojurebot#<ExecutionException java.util.concurrent.ExecutionException: java.lang.RuntimeException: EOF while reading string>
04:05hyPiRion,(Integer/parseInt "11111111")
04:05clojurebot11111111
04:06hyPiRion,(Integer/parseInt "11111111" 2)
04:06clojurebot255
04:17muhoopi * 1337% = 42
04:19ejackson:)
04:20muhoohmm, is there a way to get a lamina channel to act like a straight-up fifo?
04:20muhoowith a maximum size?
04:24amalloyyes, instead of (def l (lamina/channel)), (def l (atom (clojure.lang.PersistentQueue/EMPTY))
04:24bbloomtpope: is there a key sequence for macroexpand ?
04:29hyPiRionclojure.lang.PersistentQueue/EMPTY isn't a function, by the way. It's an empty queue.
04:29hyPiRion,(conj clojure.lang.PersistentQueue/EMPTY 1 2 3)
04:29clojurebot#<PersistentQueue clojure.lang.PersistentQueue@6b58d153>
04:34muhooamalloy: heh, basically, don't use lamina? nice.
04:35amalloymuhoo: if you need one that's bounded, and ejects old entries if it gets full, you can use https://github.com/amalloy/ring-buffer
04:36muhooi was cache/fifo-cache-factory, actually. thought i'd retool this to use lamina, but realized, i'm not sure it'd be any faster or simpler
05:38zxq9What is the recent status of Clojure on Android? I'm only finding (apparently) slow/dead projects and some faint buzz from the end of 2011. Anything new or was this abandonned?
05:40AimHereRich was making noises about it around the middle of this year
05:42zby_home_I've got a problem with sessions in ring: https://gist.github.com/4577752
05:42zxq9Did "noise" ever translate into a platform option? I'm loathe to develop a code base in Java.
05:43zby_home_possibly an obvious thing - I've just started learning clojure
05:43zby_home_but its driving me crazy
06:01amalloyzby_home_: that's not evidence of a problem. it's just a bunch of code: no output, no idea what you expected to happen or why you think it didn't
06:25zby_home_amalloy - I've put a comment there
06:25zby_home_the idea is to save referer to the session
06:26zby_home_but it is always {:x nil} in the output
06:44pure_loulougfredericks thx for the code you gave me,it helped me
08:50borkdudeI'm taking a further look into Markdown, clojure highlighting etc - one thing I notice from clojure-doc.org is that this setup doesn't allow for tables, so you have to revert to writing html? What do people use for tables in Markdown in general?
08:50borkdudeit seems to be a missing feature
08:52jaenborkdude: tables aren't really standard markdown; some parsers implement markup of them, but generally you unfortunately have to write html for that
09:14jmibanezquick q: i understand new is a special form. is it possible to call new with a var pointing to a class instead of the actual class?
09:14jmibanezi.e. can i do (def my-var SomeClass) … then (new my-var) ?
09:15jmibanezi've tried it and it doesn't work as is. i'm looking for a better alternative
09:15jmibanezi'm about to resort to writing a macro to get what i need done
09:17hyPiRion,(macroexpand '(new foobar))
09:17clojurebot(new foobar)
09:17antares_jmibanez: no, that's not possible
09:17jmibanezantares_: yeah, figured as much
09:18jmibanezwhich means i need to rewrite something to use case / cond instead of lookup via map. oh well.
09:22raekjmibanez: you can use some reflection classes that are included in Clojure
09:23raek(it is possible)
09:23jmibanezraek: too heavyweight. i bit the bullet and just rewrote my creation function to use case instead. it's a few cases, so no big
09:24raekhttps://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Reflector.java#L150
09:24raekheavyweight?
09:24raek(Reflector/invokeConstructor <Class object goes here> 1 2 3)
09:25raekequivalent to (SomeClass. 1 2 3)
09:31jmibanezraek: in terms of performance, maybe?
09:31jmibanezraek: and the case version is easier to read
09:31jmibanezif a bit repetitive
09:51ziltiIs there a way to tell Leiningen the "systemPath" of a dependency entry?
10:16Anderkentzilti: you mean using a jar from the filesystem instead of the repo?
10:18ziltiAnderkent: There's that systemPath tag for a maven dependency tag, but it seems like it's not possible to use that in Leiningen.
10:20Thallasios_Xelonhello :)
10:20Thallasios_Xeloni am looking for a way to make jar from counterclockwise ,any tutorial to read?
10:20Thallasios_Xeloni tried the official and stuck
10:21Anderkentzilti: yeah I don't think that option exists.
10:22AnderkentThallasios_Xelon: I don't think it's any different with CCW than standard eclipse
10:22Thallasios_Xeloni have never made a jar before :)
10:23AnderkentThallasios_Xelon: in the eclipse top menu, go File -> Epxport -> Java/JAR file
10:24Anderkentthen you need to select stuff you want to include
10:24Thallasios_Xeloni want to make a runable jar
10:25TimMctechnomancy: Now that the lein preview is released, how do I get my bin/lein2 script back onto the releases channel?
10:26Thallasios_Xelonthx Anderkent i will read eclipse documentation
10:26AnderkentThallasios_Xelon: you can also just run `lein jar` in the command line :)
10:27tickingI wonder how useful it would be if there was a lazy file seq, that closed the file once all the data had been read
10:28Thallasios_Xelondo you know how much slower are the immutable data?
10:28tpopebbloom: that's kind of what cqq is for. I could add a special mapping for it, but I don't want to rush to add 200 special mappings
10:30duck1123ticking: if i recall, the problem was determining when the file was consumed
10:31tickingduck1123: you mean in case it is a stream? yeah that is kind of a problem. It's just so sad to have to choose between doall and a dangling open ^^
10:33duck1123Yeah, you have to just keep your with-open high enough that you can use the whole stream
10:33duck1123I know it's been discussed at length before
10:33tickingduck1123: I'll check the logs to get some insight, thanks ^^
10:44ne1hi - is there a performant way to modify nested values in a map (eg changing strings to dates after parsing back from json) - clojure.walk/postwalk works, but doesn't seem all that quick
10:53TimMcne1: Does your JSON lib allow you to do custom decoding?
10:54ne1TimMc: I'm using cheshire - looks like it supports custom encoding, but not custom decoding
10:54TimMcAnd postwalk is slow?
10:55TimMcI recently wrote a tree-walking library, but I don't know if it would be any faster. You'd almost certainly get more speed out of writing your own structure-specific traverser.
10:56ne1it seems to be significantly slower to do a postwalk identity on the structure than the original parsing
10:58TimMcA combination of for, into, map, and update-in would almost certainly be the fastest way to do this.
11:05ne1ok, thanks
11:06TimMcThe slower speed of a generic tree-walker comes from not being able to skip irrelevant things.
11:08Bronsawtf.
11:08BronsaPersistentVector doesn't implement Counted
11:09Bronsa,(time (dotimes [_ 1e8] (count '[foo bar baz])))
11:09clojurebot"Elapsed time: 671.36448 msecs"
11:09Bronsa,(time (dotimes [_ 1e8] (.count '[foo bar baz])))
11:09clojurebot"Elapsed time: 196.25403 msecs"
11:13hyPiRion$google CLJ-1084
11:13hyPiRionoh, where's lazybot when you need him
11:13hyPiRionor her
11:13hyPiRionhttp://dev.clojure.org/jira/browse/CLJ-1084
11:15BronsahyPiRion: PersistentVector itself should implement Counted, not only PersistentVector$ChunkedSeq
11:16Bronsawell, performance-wise there would be no difference, but it'd be more correct
11:16hyPiRionYeah
11:19Bronsaoh, wait
11:19Bronsa,(counted? [1])
11:19clojurebottrue
11:19Bronsaso PersistentVector does implement Counted
11:21Bronsayeah, Indexed extends Counted
11:27hyPiRion,(counted? (vec (range 1e7)))
11:27hyPiRion,(counted? (vec (range 1e4)))
11:28hyPiRionclojurebot: Did I kill you or something?
11:28clojurebotspear: ...so -- if you're doing something where you can take advantage of having Clojure's STM available instead of locking, and will be running on lots of cores, Clojure is a good fit. Otherwise, if you're performance-bound, probably not.
11:53hyPiRionOh yeah
11:53hyPiRion`lein upgrade 2.0.0` everyone :D
11:54gfredericks`lein upgrade` worked for me
11:54hyPiRionyeah, but it's better for those who's on RC1 with a broken upgrade command
11:55gfredericks"0.3.0-1.0.2b4" is quite a version string
11:55gfredericksdoes that suggest a forked project?
11:56hyPiRionno clue
11:57hyPiRionI only understand a.b.c-RC/alpha/beta/SHA
11:57hyPiRion(and snapshot)
13:02nopolabsI'm looking clojure code to read to get a sense of the language. I'm coming from a java perspective, but would like examples that are idiomatic clojure. Any recommendations?
13:03hyPiRionnopolabs: Work with 4clojure and follow some of the top users
13:12RayneshyPiRion: wha
13:12RayneshyPiRion: 4Clojure is not the place to look for idiomatic Clojure.
13:12RaynesCode, golf, dude.
13:14nopolabsI have to agree, 4clojure is too introductory, that part I've done, not I want to see how clojure is really used.
13:15RaynesIt isn't the introductory part that is the problem, it's the fact that people vie for the shortest solutions which absolutely does not equate to the most idiomatic.
13:37dnolennopolabs: get a good Clojure book, look at mature highly dependend on projects - Ring/Compojure/Lein etc
13:40antares_nopolabs: leiningen, clojurewerkz.org projects, compojure, REPLy
13:42antares_nopolabs: also, projects under http://github.com/ptaoussanis/
13:49rodnaph_anyone know the current status of clojurescript source maps?
13:54rodnaph_dnolen: i saw you tweet about clojurescript source maps in chrome a few months ago - what's the current status?
13:54labriahey guys
13:55labriaI want to submit a pull request with a update to lein to homebrew, but I'm not sure: make 2.0.0 the main version, or to leave 1.7.1 as the main and make 2.0.0 the "devel" version
13:56labriaWhat's the state of adoption on lein2?
14:01hyPiRionRaynes: Huh, I always tried to approach it in the most idiomatic way.
14:01hyPiRionCan't see why people would like to show their golfing skills if they can show elegance instead.
14:02rodnaph_labria: (total absence of actual facts but...) i swear i heard technomancy on a podcast a few weeks ago saying "most" users were on lein2 now.
14:03labriarodnaph_: thanks
14:03hyPiRionlabria: More or less everyone is on lein 2, so I'd love to see 2.0.0 as main version
14:09labriaPull request sent, https://github.com/mxcl/homebrew/pull/17212 if anyone interested
14:16labriaAaaaand accepted into upstream
14:16labriahttps://github.com/mxcl/homebrew/commit/7b5a5591cd7c2cce0217367abd1a74f5d70098a2
14:17hyPiRionsweet
14:18labriaThis must be some kind of olimpic record
14:21labriaerr, olympic
14:43yedianyone know of non-trivial apps using cljs besides prismatic (open source is a big plus)
14:45progolight table is one I recall?
14:45ibdknoxprogo: correct
14:57yediibdknox: lighttable won't be opensource right?
14:57ibdknoxit will
14:57yedioh sweet, is the repo already public?
14:58ibdknoxnot yet, it's not quite stable enough
14:58RaynesI just stole ibdknox's laptop for a few hours.
14:58RaynesTook the source.
14:58ibdknoxlol
14:58RaynesHe doesn't know it.
14:58RaynesOh, wait...
14:58DigitalJackFor those here that use emacs, do you use it in the client/server mode?
14:58dnolenrodnaph: there's a lot more to do but I'm kind of waiting for 1.5.0 to get released to move forward
14:59Raynesdnolen: So you're working on source maps, right?
14:59RaynesIn cljs.
14:59dnolenrodnaph: also I would like to see tools.reader in contrib so I can add column info to symbols
14:59dnolenRaynes: yes
14:59Raynesdnolen: Anyone ever tell you that you're a good person?
14:59dnolenRaynes: though I haven't done much lately because of the above
14:59RaynesYeah, I understand.
15:00RaynesLooks like lots of cool stuff leads up to it.
15:00dnolenRaynes: heh thanks, we're close. If the two above items get sorted out, probably a couple of weeks of work on emission
15:00dnolenRaynes: oh, man I want source maps sooo bad. And clearly so does everyone else :)
15:00borkdudewhat are source maps?
15:00yediibdknox: i'll be interested to see how you organized/structured LT's cljs portion
15:00Raynesdnolen: Am I right that CoffeeScript doesn't even have source maps? I think we're winning.
15:00ibdknoxyedi: the whole thing is CLJS actually :)
15:00muhooa hard schlep, i bet
15:00dnolenborkdude: debugging CLJS directly in the browser
15:01ibdknoxyedi: this will give you some idea: http://www.chris-granger.com/2012/12/11/anatomy-of-a-knockout/
15:01borkdudednolen ah… cool
15:01dnolenRaynes: yes CoffeeScript doesn't have soure maps
15:01ibdknoxyedi: I'm going to write the next part this week hopefully
15:01dnolenRaynes: and even if it did they aren't solving the merge source map problem
15:01dnolenRaynes: which I've already done
15:01AnderkentWhat's an elegant way of going from list of pairs to lookup tables from the first element to the pair and the second element to the pair? Can't get it in an elegant way.
15:01dnolenso you can debug from CLJS all the way through advanced compilation
15:02yediibdknox: oh sweet, thanks
15:02Anderkentah wait I think I have it
15:03RaynesAnderkent: Why not use maps?
15:04AnderkentRaynes: I am. Just can't get the construction function right -.-
15:05Raynes&(into {} [[:a :b] [:c :d]])
15:05lazybot⇒ {:a :b, :c :d}
15:05RaynesWould also work with lists.
15:05Anderkentexcept keys may be duplicate
15:05Anderkentso I want a set of pairs as the value
15:05Anderkentsorry, forgot that :)
15:08amalloyRaynes: would not work with lists
15:08amalloyyou'd need to map vec
15:09Raynesamalloy: I meant '([] ..)
15:09RaynesBut yeah.
15:10amalloyAnderkent: you already have a list of pairs. asking for a set of pairs as output doesn't make sense. what do you want the output to look like?
15:10RaynesI assumed he meant a set of values.
15:10Anderkenthttps://www.refheap.com/paste/8815 this is my current monstrosity..
15:10Raynes[[:a :b] [:a :c]] -> {:a #{:b :c}}
15:10tmciverAnderkent: sounds like you might want to use group-by somehow.
15:11amalloyugh, no group-by
15:11aavis it guaranteed that conj/disj for a set will take constant time?
15:11amalloy(apply merge-with into (for [[k v] pairs] [k #{v}]))
15:12yediibdknox: the ending is such a tease, haha
15:12yediibdknox: can't wait for the next post
15:12ibdknoxbwahaha
15:13Anderkentamalloy: thanks
15:13Raynesibdknox: When is the next lt release? You told me but I forgotses.
15:13seangrovelazybot: you alive?
15:13Raynes$kill
15:13lazybotKILL IT WITH FIRE!
15:13RaynesI fixed it earlier.
15:13seangrove$seen Raynes
15:13lazybotRaynes was last seen talking on #clojure 4 seconds and 809 milliseconds ago.
15:14seangrove$seen emezeske
15:14lazybotemezeske was last seen quitting 4 weeks and 4 days ago.
15:14seangroveThanks Raynes
15:14seangroveHrm, that's not a good sign though
15:14RaynesWow.
15:14RaynesThat's concerning.
15:14Raynes:|
15:15seangroveSo when trying to run the tests for lein-cljsbuild (so I can get a patch merged) via `lein test`, I get this error: java.io.FileNotFoundException: Could not locate midje/sweet__init.class or midje/sweet.clj on classpath
15:15tmciveramalloy: why not group-by? ##(group-by (fn [[k v]] k) [[:a :b] [:c :d] [:a :e]])
15:15lazybot⇒ {:a [[:a :b] [:a :e]], :c [[:c :d]]}
15:15seangroveThis is the project.clj: https://github.com/sgrove/lein-cljsbuild/blob/master/plugin/project.clj
15:16seangroveShouldn't midje be on the classpath with that project.clj?
15:16amalloybecause going from group-by's output to the desired result is just as hard as going from the original input :P
15:16dnolenseangrove: emezeske watches the clojure & clojure-dev mailing lists, might want to ping him there.
15:16tmciveramalloy: hmm, I thought group-by's output was the desired output.
15:17Anderkenttmciver: should be set of values not vector - duplicates
15:17tmciverAnderkent: ah
15:17amalloyalso, (fn [[k v]] k) is just first
15:19ibdknoxRaynes: I was thinking beginning of feb, but since I added a few big things in, it might be end of feb
15:20Anderkentamalloy: your proposition seems to work once I make it (for [[k v] pairs {k #{v}}) - maps instead of vectors. Thanks!
15:20amalloyoh sure, sorry
15:21amalloywent into my into/for autopilot
15:30brainproxytechnomancy: congrats on the 2.0.0 release, and many many many thanks for your hard work
15:39borkdudewhat do people using markdown for writing books use for cross referencing… nothing?
15:46technomancybrainproxy: thanks; glad it's helpful
15:46technomancywow weird; it's the top story on hacker news
15:49borkdudetechnomancy yeah :)
16:00hyPiRiontechnomancy: Seems like the publicity pushed Leiningen over 2k faves. Wohoo!
16:01technomancyhyPiRion: only 200 to go to beat emacs starter kit, heh
16:02technomancybut I am still super confused about how starring vs watching works in github now
16:02technomancyI don' think I've ever starred anything since they switched things up
16:03bruceadamswatching turns on emails. starring doesn't do very much.
16:03hyPiRionstarring autocompletes in search fields
16:05xeqistar = publically vote for this project ; watch = I'm actually interested
16:05Raynesstar = utterly useless
16:06Rayneswatch = utterly useless unless you want an email about every single thing that happens in the repo, including the author farting.
16:06brehautstar = measurement contest
16:06pjstadigstar = keep it in a list of projects so i can see what is happening with it
16:06pjstadigwatch = get e-mails when people do PR's etc
16:10bbloomRaynes: i've been finding that stars yield a somewhat interesting feed
16:10bbloomit's pretty hard to scan
16:11bbloombut otherwise, it's worth skimming every few days to see what projects are up to
16:18seangroveHarumph
16:18seangroveI'd personally rather see cljs CI integrated with Sauce Labs than testling
16:19seangroveAnd I'm sure having worked there years ago and having built a considerable amount of the system in no way biases my perception
16:19xeqiseangrove: what are you using for cljs tests?
16:20seangrovexeqi: Nothing for now. I tried for two days a month ago to get it running, couldn't get it to work at all, and no help on the mailing list
16:20seangroveI may revisit it soon now that the release is almost ready and I have a better idea what I'm doing with cljs now
16:32DigitalJackI'm giving emacs a spin after being away for a few years.. I'm struggling with nrepl.el and getting nrepl-jack-in to work with a project. Any suggestions for debugging my setup? (emacs 24.2, osx 10.8, lein 2.0.0)
16:35DigitalJackI've been able to start a repl from the command line via "lein repl" and connect nrepl.el to the running repl. I'm wondering if it's a path issue.
16:39frozenlockDigitalJack: IIRC, you need to be in the same path as your project.clj before running nrepl-jack-in.
16:40frozenlockNope, I was wrong.
16:42DigitalJackfrozenlock: I'll see if I can figure out how to set a breakpoint or otherwise examine the environment.
16:43warzhm, if im in a lein repl, and i started a web server, how do i kill it? on windows, ctrl-c doesn't seem to do anything.
16:44hyPiRionCtrl-D ?
16:45warzdoesn't work either
16:49frozenlockwarz: (server/stop my-server) ?
16:50frozenlockOr rather, the `stop' function on your server symbol
16:50warzinput is blocked. i started a ring web server, and its blocking repl input now. i had to kill the java process.
16:51brehautwarz: :join? false
16:51brehautin your ring options map
16:52brehautoh wait, you are using lein ring. i have no idea then
17:03maioany heroku+clojure expert here? :) I would like to run DB migrations (clojure code) during build/deploy. any idea how to do that?
17:05technomancymaio: if you include an executable bin/build script it will be run instead of the standard `lein compile :all`
17:05technomancyyou can put migrations in there
17:05pjstadigmaio: i'm biased about https://github.com/pjstadig/migratus
17:05ChongLidamn, who thought structured clone was a good idea?
17:05ChongLidamn web workers :(
17:06ChongLiwhy can't they give us shared access to immutable data structures?
17:06pjstadigmaio: but it depends on your use case, and if you have something small you can do what clojars does https://github.com/ato/clojars-web/blob/master/src/clojars/db/migrate.clj
17:08pjstadigoh you were just looking for the mechanism
17:09technomancypjstadig: do you use downward migrations at work?
17:09technomancyjust curious
17:09maiopjstadig: ah nice to see you here :) I have been looking at several migration tools yesterday - migratus included :)
17:09pjstadigtechnomancy: i'm not a fan of them
17:09pjstadigwe write them, but i doubt they're tested enough
17:09pjstadigor at all
17:10technomancypjstadig: seems like most people (who have actually tried them) aren't fans
17:10pjstadigthey might work if you're more disciplined about actually testing deploy failure scenarios
17:10maiopjstadig: then I decided to practice Clojure little bit and wrote simple&stupid implementation https://gist.github.com/4575985
17:10maiotechnomancy: thanks. I will try that
17:11maioI'm writing rollback scripts but I never had to use them so I'll probably stop doing that :)
17:12pjstadigmaio: nice!
17:12pjstadigif migratus can be helpful i'd be pleased, but if something simple works, then stick with it
17:13pjstadigi'm a fan of not introducing complexity unless/until it's necessary
17:15maiothis is my first real Clojure code and I will just use it for toy project for now. I could use something more sophisticated later on I guess :)
17:15pjstadigi've been hacking on this today https://github.com/pjstadig/clojurescript/tree/elisp
17:18bbloompjstadig: is that a clojurescript to elisp transpiler?
17:18pjstadigyup
17:18bbloompjstadig: heh. cool. what's the status?
17:18brehautthats both cool and terrifying
17:18maioclojure -> emacs lisp? :) cool!
17:19pjstadigcompiles def, fn, multi-arity functions, variadic functions, set!, try/catch, loop, recur
17:19pjstadigdoesn't do deftype or defrecord yet
17:19bbloomneat
17:19pjstadigbut deftype and defrecord are going to be tougher
17:19pjstadigoh it does letfn too, which was a bit tricky
17:20maiopjstadig: is there some real usecase that you have? or do you just hack it for fun now?
17:21bbloompjstadig: have you needed to change the analyzer at all? or just core & compiler.clj ?
17:21pjstadigjust core & compiler so far
17:21pjstadigmaio: um, mostly for fun i guess, it would be cool to use clojure and persistent datastructures when writing emacs scripts
17:22bbloompjstadig: please keep some notes on your experience & share them w/ the dev mailing list. there's a bunch of folks interested in making the clojurescript compiler be more amenable to additional backends
17:23pjstadigsure
17:23pjstadigthough there are definitely some issues, elisp is mostly cheating
17:23pjstadigit was more about removing code than adding code
17:24pjstadigand i've done all the low hanging fruit :)
17:24pjstadignext are deftype and defrecord
17:27Raynesbbloom: I may or may not have used you as an example without asking first in that "cljs is hard to contribute to" thread. I apologize.
17:30bbloomRaynes: my skin is thicker than most because my ego is disproportionately and unjustifiably large
17:30Raynesbbloom: Well, I used you as a good example.
17:30bbloomRaynes: thanks for helping justify my ego :-P
17:31bbloombut yeah, apologizing would have been the right thing to do if i were pretty much anyone else... heh so thanks :-)
17:34warzwhere does leiningen store project dependencies? i see that it downloads them, but where do they go?
17:34bbloomwarz: lein doesn't do it itself, it delegates to some maven ecosystem tools... they put that stuff in ~/.m2
17:41bbloomi think i need to start a new rallying cry: "death to def". i hate any macro that "installs" something like defmethod
17:42bbloomit sucks for all the same reasons i hate programs that "install" things.... i'm not granted a cleanup burden and an ambiguous state
17:42bbloomand then there's sort of the opposite problem for defonce
17:44Anderkentsubseq doesnt return a sorted collection? Why?
17:49borkdudeI tried org-mode and a clojure code fragment, with minted (pygments) as the highlighter. This works well for org-mode -> latex, but in org-mode -> html there is no highlighting. is there someone here who got this working?
17:50bbloomAnderkent: not sure... the sorted interface has a seqFrom method... might not be straightforward to implement that on a seq already produced via seqFrom on something else
17:52bbloomAnderkent: subseq returns a seq, not a collection, that's why
17:52bbloomAnderkent: you'd need a per type sub-thing
17:52bbloomlike subvec or submap or subset
17:52bbloomsubseq always returns an ISeq, which isn't sorted
17:53bbloomunfortunately, it may be impossible to implement submap or subset without access to the internals of the underlying type
17:53Anderkentgah. w/e, I'll just do drop-while and promise it's sorted :)
17:54bbloomAnderkent: it's an interesting thought tho to provide submap and subset
17:54bbloombut that's why :-)
17:58amalloybbloom: even with access to the internals submap and subset are hard to produce
17:59amalloysubseq is fine because it just takes a slice out of a well-balanced tree and turns it into a seq; how do you get that slice and still guarantee performant modifications to it?
18:02emezesketechnomancy: There used to be a leiningen.core.eval/*prepping?* -- did the need for that go away at some point?
18:11jballancwhat's the suggested way to manage different deployment environments for a Ring app? Do people use RING_ENV?
18:16akhudekjballanc: I just have a dev mode that is toggled via a command line parameters (I start jetty via the jetty adapter, not lein-ring)
18:17jballanchmm...I'm using Leiningen, so I could stick it in the deployment descriptor and use the immutant registry
18:17jballanc...just seems like that's a bit fragile
18:18akhudekjballanc: if you are starting things from lein, you could perhaps use lein profiles to do it
18:19jballanchmmm...that's not a bad idea...
18:38WraithanSo avoiding the HTML DSLs out there, is fleet the standard for html templating or are there others that are more prefered?
18:38brehauti dont think fleet is any kind of standard
18:39brehautvarious moustache implementations have more traction
18:39brehautand i dont know if you include enlive etc in HTML DSLs
18:39clojurebotExcuse me?
18:40brehautclojurebot: nobody asked you
18:40clojurebotexcusez-moi
18:40jballancheh...clojurebot has a sense of humor
18:40brehauthe does
18:40SrPxo.o
18:40brehaut~botslap
18:40clojurebotIt's greek to me.
18:40jballanc~botsnack
18:40clojurebotThanks, but I prefer chocolate
18:40brehaut~botsmack
18:40clojurebotclojurebot evades successfully!
18:40jballanc~chocolat
18:40clojurebotExcuse me?
18:40jballanc~chocolate
18:40clojurebotCool story bro.
18:41jballancsometimes I think I prefer lazybot
18:41brehautWraithan: theres also a django style library under development if your predilection go that way
18:41Wraithanbrehaut: yeah, that is DSL
18:41brehautthe line between DSL and API is blurry and strange
18:41Wraithanbrehaut: you don't write any html itself, you write clojure and it generates html, that is a DSL imo
18:41amalloyalso mostly useless
18:42brehautWraithan: that is completely untrue WRT to enlive
18:42amalloy(the line)
18:42brehautamalloy: indeed
18:42Wraithanbrehaut: from reading their readme on their repo it looks like pure DSL to me, guess I could be wrong
18:42brehautWraithan: yes, you are wrong
18:43brehautWraithan: enlive transforms existing HTML documents. all your HTML is written in pure HTML
18:43Wraithanah
18:43Wraithanthat sounds terrible
18:43Wraithanhaha
18:43WraithanI misread how it worked.
18:43bbloomamalloy: it's a good point. but you don't necessarily need performant modification, maybe only to preserve the performance characteristics of lookup
18:43amalloybbloom: if you just want to look things up, you don't need a submap at all
18:43brehautWraithan: its docs are opaque when you dont already know enlive
18:44brehautWraithan: but it is a great model for working with html
18:45brehautWraithan: if you wish to use a greenspun templating language, there are plenty of those around however. you can use many of the ones for Java etc too
18:45bbloomamalloy: *shrug* i haven't really thought about this much at all, i only thought as far as why it doesn't exist :-P that's all he asked, heh
18:46bbloomor rather why subseq is not sorted, and the answer to that is that subseq != submap or subset.... the question of why those don't exist is a whole other matter :-)
18:50weavejesterWraithan: There is also Clostache and Stencil for moustache templating
18:50weavejesterWraithan: Comb for erb-like templating
18:50WraithanThink I am going to use clabango
18:50weavejesterWraithan: And laser for enlive-like HTML insertion
18:50Wraithanit is cloest to django/jinja2 which I know
18:51brehauttheres also https://github.com/sjl/dram for django style
18:51weavejesterI hadn't come across clabango before. Or dram
18:51weavejesterOh, but dram says do not use
18:51Wraithanyeah, lol
18:53brehaut[smartarse comment here]
18:54weavejesterAdded Clabango to clojure-toolbox
18:55brehautclojure toolbox has gotten quite large since i last looked
18:56brehautweavejester: http://www.luminusweb.net might fit under web framworks too
18:56weavejesterOh yeah, I keep forgetting that
18:59brehautthe template languages list is getting absurd :P
18:59brehautlikewise SQL abstractions
19:00brehautweavejester: is clojureql still a thing?
19:00weavejesterbrehaut: docs updated 18 days ago
19:00brehauthuh well there you go
19:01weavejesterdependency on Clojure 1.4.0
19:01brehautwell thats good to see. i had the impression it had died a sad death
19:03amalloynothing sadder than a guy with a hole clean through his abdomen insisting he's not dead, brehaut
19:03brehautlol
19:11weavejesterBTW, if anyone has any suggestions for libraries for clojure toolbox, let me know
19:11brehautweavejester: if you want a 'stupid crap that shouldnt have been invented but now i have to support anyway' category, ive got a lib for you
19:12hiredmandnolen: (logic/run [q] (logic/fresh [a b c])) is throwing and exception during macroexpansion for me with the beta4 to the lastest rc of core.logic
19:12Raynesnecessary-evil
19:12Raynesbrehaut is a one trick pony
19:12brehautthats right
19:12weavejesterbrehaut: If you don't want people finding it, then maybe it should be left off the toolbox. :)
19:12dnolenhiredman: run* or run n, there is no run like that.
19:12Raynesweavejester: You're missing https://github.com/kumarshantanu/basil under templating.
19:12brehautweavejester: well, its xml-rpc i dont want people finding
19:13hiredmandnolen: is that a change?
19:13Raynesweavejester: Missing https://github.com/davidsantiago/hickory under html parsers.
19:13edtsechweavejester: foreplay.vim (Vim Integration)
19:13Raynesweavejester: Irclj is not an IRC bot, it is an IRC client library.
19:13dnolenhiredman: no there was never a run w/ no integer arg.
19:13hiredmanoh, no
19:13hiredmanhmmm
19:13edtsechweavejester: https://github.com/tpope/vim-foreplay
19:13hiredmanwell, run* there says wrong number of args passed to bind*
19:15hiredmanmy guess is because the macro expansion of bind* is doing ~@g-rest and g-rest must be nil
19:16Raynesweavejester: immutant is missing from wherever you'd put something like it.
19:17weavejesterRaynes: Hmm, what would you call immutant?
19:17RaynesConfusing.
19:18weavejesterHah
19:18RaynesHonestly have no clue.
19:18RaynesMaybe add an "Application Servers" section or something.
19:18weavejesterYeah, though "application servers" isn't a very descriptive category...
19:19RaynesWhich is probably why I still have trouble understanding what immutant is.
19:19weavejesterI'll put Immutant in when I figure out a good category :)
19:19hiredmandnolen: I must have had some bad repl state left around, restarting it got rind of the bind* exception
19:20weavejesterMaybe "JBoss Server"
19:20Raynesweavejester: Do you have 'fs'?
19:21RaynesYou do not.
19:21Rayneshttps://github.com/Raynes/fs
19:21weavejesterNo, but I thought I did
19:21Rayneshttps://github.com/Raynes/clavatar for gravatar stuff, maybe.
19:21Rayneshttps://github.com/Raynes/tentacles for Github API interaction.
19:22Rayneshttps://github.com/Raynes/bultitude for finding namespaces.
19:22weavejesterThose are all pretty unique libraries :)
19:23amalloyyou need a section for "Raynes libraries"
19:23amalloythen they're easy to categorize
19:23weavejesterHaha
19:23Raynesweavejester: Are you looking specifically for common task sort of things?
19:23RaynesOr do you mean "Wow, what category do I put those under."
19:23dnolenhiredman: good to hear
19:24weavejesterWell, hm, bultitude could go with tools.namespace in a namespaces section
19:24weavejesterRaynes: The latter
19:24RaynesGot it.
19:24weavejesterRaynes: I don't want to create a lot of one-entry categories
19:24RaynesThere is a new file system events library that is better than mine, but I can't think of what it is called.
19:24weavejesterBut sometimes I have to :)
19:25algernonRaynes: ojo?
19:25RaynesYeah, I think so.
19:26RaynesIt seems like a weird implementation, but it uses native java 7 stuff so it is automagically better than mine.
19:26Raynesweavejester: You could group https://github.com/drakerlabs/ojo and https://github.com/Raynes/filevents
19:27weavejesterRaynes: I have a Filesystem Watcher category, which is kinda what they are
19:28Raynesweavejester: https://github.com/technomancy/serializable-fn, https://github.com/Raynes/innuendo, https://github.com/Raynes/ororo,
19:28Raynesweavejester: Also, sorry for throwing all my own projects at you. Just easy to remember those. :p
19:29weavejesterRaynes: Nothing to apologize for! It's what I want :)
19:29akhudekoooh, serializable functions!
19:29Raynesakhudek: Indeed. clojail uses them extensively.
19:29akhudekLooks like something I could use. :-)
19:29Raynesakhudek: It isn't perfect, but it works well for certain things.
19:31weavejesterRaynes: What does clojail use them for?
19:33weavejesterHm, I could have a category like "Web Service Clients" or "Web API clients" for libraries that interact with web APIs
19:48weavejestertechnomancy: ping
19:52tomoj^:higher-order is just for humans?
19:55TimMctomoj: Probably? I've not seen that used before...
19:55JosephFritzllhow to make a gay fuck a woman?
19:55JosephFritzllshit her into cunt
19:55TimMcIt could be designed for some tool or other.
19:57TimMcweavejester: Haha, you *did* add necessary-evil!
19:57brehautlol
19:57weavejesterTimMc: Well, if someone wanted XML-RPC...
19:58tomojTimMc: I mean on leiningen tasks
19:59TimMcOh, wouldn't know.
20:06yedihttp://shenfeng.me/async-clojure-http-client.html
20:10gdevwhy another clojure http client?
20:11weavejesterIt looks like an easier async HTTP clinet
20:11gdevis it thread safe?
20:11weavejesterOr client, even, if I could spell
20:12weavejestergdev: Presumably. Async stuff usually is, because it relies on a queue of events.
20:13gdevwas it designed with server side in mind?
20:13weavejestergdev: Why would that matter?
20:14weavejesterI mean, HTTP async clients are usually for server use
20:14weavejesterBut I can't think of any inherent difference between client and server in this case.
20:14gdevto make sure keep-alive is done right
20:14weavejestergdev: keep-alive in what sense?
20:17TimMcgdev: It sounds like you're just repeating stuff you're reading on that page...
20:18gdevyeah I was hoping someone could explain what those three highlights meant, but alas
20:19JosephFritzllhow to make a gay fuck a woman?
20:19JosephFritzllshit her into cunt
20:19gdevwell that was unexpected
20:19JosephFritzllgdev i know
20:20weavejestergdev: Well, clj-http is thread safe, so I'm not sure why that's a bonus. It's kinda something I'd expect from a HTTP lib
20:21gdevweavejester: I know, it's kind of funny that under "why another http client" it doesn't list any unique things
20:22weavejestergdev: I'd be interested in knowing how it handles persistent connections (presumably what it means by keep-alive done right)
20:22weavejesterIn clj-http, you can setup a connection pool… which come to think of it, I should really be using for a project I'm working on.
20:26JosephFritzllWhat is difference between nigger and barrel of shit?
20:26JosephFritzllits the barrel
20:27brainproxyJosephFritzll: that's inappropriate for this channel, seems to me
20:27JosephFritzllbrainproxy i know
20:27JosephFritzllthats why im posting this
20:27gdevhow do you mute someone?
20:27JosephFritzllgdev dont do this :(
20:27brainproxygdev: someone w/ op access needs to do it
20:28gdevnevermind, figured it out
20:29gdevmr fritz, first person on my ignore list
20:29JosephFritzllgdev ur mother biitch
20:29gdevnow, back on topic, http clients
20:29brainproxyjcowan, Chouser and rhickey are only nicks w/ op access
20:29brainproxyand none of them are around
20:30SgeoIs Chousuke someone else?
20:31scottjSgeo: yes
20:32JosephFritzllHow to repeat holocaust?
20:32JosephFritzllneed answer, fast, thanks in advance
20:34JosephFritzllHodapp :)
20:39TimMcHodapp: Just ignore.
20:40HodappTimMc: I didn't see his earlier lines, hence the quizzical look...
20:43bbloomgdev: i didn't even know i had an ignore list (although i assumed). +1 thanks
20:48gdevbbloom: =D glad I could help
20:56TimMcRaynes: I'm reading about vim text objects. It's an interesting take on the same editing problem that Emacs modes are used to solve.
20:56bbloomTimMc: text objects are crazy useful
20:56bbloomit's also why i don't bother with vim-parenedit or anything
20:57bbloomwant to replace the contents of some parenthesis? cip
20:57bbloomer i mean ci)
20:57bbloommy fingers know it so much better than my brain
20:58bbloomwant to replace the parens too? ca)
20:58tpopecib
20:58technomancyweavejester: pong
20:58tpopeb stands for barentheses
20:58weavejestertechnomancy: Oh hi
20:58technomancytomoj: ^:higher-order is for humans, yeah
20:58bbloomtpope: more likely "brackets" :-P
20:58bbloomtpope: i prefer to be explicit in case there are [ or { or whatnot
20:58bbloombut i guess i should learn to use b
20:59bbloomseems that b is the same as ( hmmm
20:59tpopeit doesn't stand for brackets
20:59tpopebarentheses, like I said
20:59mthvedti prefer to use bar edit for those
20:59bbloomas i just discovered haha
20:59weavejestertechnomancy: I was wondering if Leiningen had any capability to only allow packages from a specific set of signatures
20:59bbloommthvedt: heh.
20:59technomancyweavejester: not yet, but it's planned
21:00weavejestertechnomancy: Ah, thanks for the info
21:00technomancyso far all it can do is walk your deps tree and tell you for each thing whether it's signed or not
21:00weavejestertechnomancy: What command's that?
21:00technomancythat'd be `lein deps :verify`
21:01weavejestertechnomancy: Thanks
21:01technomancyI wonder if GitHub will still give me stats for my downloads or whether they're lost forever
21:02weavejestertechnomancy: Do you think it might be worth keeping a public page (https) of keys from prominant libraries/authors?
21:02bbloomtechnomancy: i tried tweeterizing at them, but apparently that won't bring back the traffic graph
21:03xeqiweavejester, technomancy: wonder if clojars should have say who its signed by (if anyone)
21:03technomancyweavejester: I think the existing public key servers might be enough for that, but showing the key fingerprint on the clojars profile page might be nice for cross-referencing
21:04xeqiis there a webpage for the trust server keys showing who has signed it?
21:05technomancyxeqi: http://keys.gnupg.net/pks/lookup?search=hagelberg&amp;op=vindex
21:06technomancyhuh; apparently I generated a key pair in 2005... that must have been right after reading Cryptonomicon.
21:06TimMcI need to find a guide on creating and managing GnuPG keys.
21:07technomancyI thought we linked to one somewhere from the lein docs, but I realize that discussion may have happened when I was delirious with illness.
21:07TimMcI see people say things like "I expire my encryption subkey every year but have no expiry on my signature subkey" and I have no idea what that means in practice.
21:08TimMcI understand RSA but not GPG.
21:08technomancyRSA is an algorithm
21:08jaimefyou sign with one, and sign the one you use to encrypt, and revoke the one you use for encrypting.
21:08technomancyRSA:GPG::h246:mp4
21:09TimMctechnomancy: Yeah, and GPG is basically a wrapper around different algorithms, and I'd be using RSA.
21:10jaimefpki + your local key encrypted with rsa/others
21:10TimMcWhat I'm saying is that I understand what the two subkeys are for, but I don't know how they map to GPG keyfiles, etc.
21:14technomancyTimMc: start with `gpg --gen-key`
21:15technomancy`lein help deploying` will show you how to use that key to encrypt your clojars creds
21:15technomancyand it'll automatically use your key to sign artifacts upon deploying
21:15TimMcWhat expiry do I use?
21:15technomancyI recommend a year or two
21:16TimMcAnd before my signing key expires, I have to create a new one, sign it, and distribute it?
21:16technomancyyeah, that's the idea
21:16WraithanSo is there something I could do so my template files are lazy loaded? https://github.com/wraithan/leech-tracker/blob/master/src/leech_tracker/handler.clj
21:17TimMctechnomancy: Does the encryption subkey get used ever? (with software signing keys)
21:17TimMcThat is, is there a reason to/to not expire it?
21:17technomancyI'm not sure; I don't think you need to worry about it.
21:18TimMcAnd in practice, how the hell do you remember to refresh your keys? I hate things that need to be done yearly or even less often and don't have built-in reminders...
21:18brehautTimMc: see also governments and anything to do with taxes
21:19TimMcbrehaut: I *hear* about taxes every year, way before they're due. :-)
21:19technomancyso just refresh your keys when you do you taxes; problem solved
21:19technomancy=)
21:19TimMchaha
21:19brehautTimMc: I live in fear that i have missed some important tax paying deadline and am in the red with the tax department
21:20TimMcI guess I should set my keys to expire in 2 years + 3 months, and roll them over every 2 years.
21:21technomancyTimMc: emacs has really good gpg integration; if you visit a file ending in ".gpg" it will ask for your passphrase and transparently encrypt/decrypt
21:25TimMcAnd is it smart enough to avoid saving the decrypted contents to a backup file? :-)
21:27TimMcI always worry about that with tools that helpfully offer to decrypt stuff in memory.
21:28TimMc(Having all-but-/boot encryption means having to worry far less about such things.)
21:31warzim having a hard time deciding what i want to try to make as my first attempt at a clojure app.
21:31warzbeyond the simple stuff, and in-repl adventures
21:31warzi was thinking, an irc client maybe
21:31warzthats pretty universal
21:33gdevor a media player
21:33TimMcOther classics: Text editor, photo gallery, mail client (*shudder*).
21:33gdevI was thinking of writing a media player that played .clj files
21:33gdevyou could hear your source code
21:34xumingmingvplay .clj files sounds interesting ;)
21:34warzor just have it read your code, while layered over samples of other songs pulled from soundcloud or something.
21:37gdevI was thinking more of the characters in the file "plucking" a certain note. if all the notes in the list are harmonic then it won't sound like garbage
21:38gdevunless it encounters something non idiomatic, then it sounds like a piano crashing down the stairs
21:38gdevaudible style checker of sorts
21:40TimMcI tried to cat core.clk to /dev/audio, but it seems to be missing.
21:41metellustry /dev/dsp
21:43TimMcNo such.
21:46TimMccat repos/clojure/src/clj/clojure/core.clj | aplay
21:46TimMcWell, that was a rather disturbing song.
21:47warzlol
21:48TimMcAFn.java is kinda cool.
21:53TimMcHoly cow, my Windows partition sounds better than some of the techno I've heard...
21:53ivanNTFS wubs
21:53brehautlol
21:53brehautTimMc: parellel invention of dubstep
21:53TimMcThis is disturbingly good.
21:54TimMcbip bip bip bip biddle biddle bippa dip
21:54brehautWUB WUB WUB
21:55TimMchelicopter interlude
21:55brehautspeed metal sample glitched up
21:56TimMcI just discovered another downside to encrypting one's hard drive.
21:56gdevcd /bin : cat * | aplay
21:57gdevthe dog is barking at my laptop now, adds to the ambiance
22:00TimMcIf I released an MP3 of an unencrypted home partition, I wonder how hard it would be for someone to read my files. :-)
22:02gdevhmmm, that would be interesting
22:04gdevcan you set the number of channels when you record it?
22:04gdevmanpage says you can. that seems to change the sound a bit, so they would have to know that
22:05gdevalso you could play with the sampling rate as well
22:08TimMcaplay --channels 3 is freaky
22:08warzwish i were on linux, heh
22:09muhoowarz: only a vm away
22:09gdevthe license for most linux distros aren't that expensive
22:10warzthat is true, heh. i tried the other way around, earlier this week. i tried to make ubuntu my desktop OS, and run Windows on a VM.
22:10warzcouldn't stick with it, though.
22:10muhooi used the sound of an ext2 partition in a song
22:11gdevcat * | aplay --channels=3 --format=A_LAW --vumeter=stereo
22:11gdevmind=blown
22:13muhoohttp://archive.org/download/KenRestivoInternetArchivePart1/mydisk.ogg
22:14gdevwell aplay is cool, but my implementation would definitely sound less like skrillex demos and more like a harp being attacked by a pogo stick
22:15TimMcshut up and take my money
22:15muhoothat was the sample, i thimk the track it ended up in was http://archive.org/download/KenRestivoInternetArchivePart1/552-0.2.3.ogg
22:17gdevi like mydisk.ogg better
22:17gdevit's catchier
22:18gdevi've been playing with overtone this week, I'm sure there's something in there that could get me started
22:18TimMcovertone is ridiculously fun to play with
22:20gdevI could just make it so that your source code is the DSL. Parens could be mapped to drum kicks, operaters to high hats, macros mapped to the "wtf boom.wav"
22:21gdevyou could hear your code recurring
22:23TimMcThere's an old bit of computing lore wherein (IIRC) a speaker was hooked up to a computer's CPU, and the programmers could hear what parts of the program the computer was executing. Interesting tracing technique.
22:26xumingmingvIs it possible to hear some bug out of its sound ;) (If the source code sounds too terrible)
22:26muhooa program is rather like a composotion to me
22:27gdevwell the same way we have "code smells" after a while you could have "code sounds"
22:27gdev"that function sounded too long, might have to break it up into sub-melodies"
22:28gdev"this http client needs more cowbell"
22:28muhooget into paralellism and concurrency and you have counterpoint
22:29xumingmingvhaha
22:29gdevyeah, I wonder what threadsafe code sounds like
22:31gdevwhoah, I can see your thoughts
22:31muhoothe whole concept of immutability seems like using a nondestructive DAW
22:31muhoo"all the old takes are still there"
22:32gdevthen the taxi pulls away with your records
22:34gdevhrm, wonder if I can turn my project into a full on synesteshia api
22:41gdevi like how 4clojure links an insanely hard problem after you solve one that required you to type in "1"
22:46TimMcYeah, not sure why the order of problems is so bizarre sometimes.
22:54aphyrAnyone know where clojure.contrib.reflect went? clojure.reflect doesn't have any of the useful stuff for reading private fields, etc.
22:55TimMcwall-hacks?
22:56aphyrAh, right, thanks
22:57TimMcmuhoo: Here's a chunk of my Windows partition that had some interesting sounds, notably right near the beginning: http://dl.dropbox.com/u/5819239/win_skip-900kiB_count-2000kiB.ogg
23:04WuHoUniteddoes someobdy know why the following throws an excption
23:04WuHoUnited(defn rotate-char [rotation char]
23:04WuHoUnited (let [offset (int \a)
23:04WuHoUnited base (- (int char) offset)
23:04WuHoUnited newbase (mod (+ rotation base) 26)]
23:04WuHoUnited (char (+ offset newbase))))
23:04WuHoUnited(rotate-char 13 \a)
23:04WuHoUnitedwhile what should be identical,
23:04WuHoUnited(defn rotate-char [rotation char]
23:04WuHoUnited (let [offset (int \a)
23:04WuHoUnited base (- (int char) offset)
23:04WuHoUnited newbase (mod (+ rotation base) 26)]
23:04WuHoUnited (char (+ offset newbase))))
23:04WuHoUnited(rotate-char 13 \a)
23:04WuHoUniteddoes not. (the only difference is whether the final char is called inside or outside the function)
23:04WuHoUnitedthat wasn't supposed to copy/paste like that. -_-
23:06warzhm, im trying to decide if i want ubuntu with unity, or to install ubuntu server and then install gnome or something.
23:07WuHoUnitedoh whoops
23:07WuHoUnitedi see what i did wrong
23:08WuHoUnitedshadowed the definition of cahr
23:20TimMcWuHoUnited: In the future, please use a pastebin (such as refheap.com).
23:48tomojis there a zipper-like data structure for a cycle which just supports left and right?
23:48tomojis there a simpler representation?
23:52TimMcA cycle?