#clojure logs

2013-01-29

00:01callenbotRaynes: evaluation of Collapse Under the Empire?
00:02Raynescallenbot: It's a nice big musical thing. You'll learn this about me: I evaluate vocals because I am a vocalist and I know nothing about instrumentals.
00:02callenbotRaynes: oh fuck son. We're meant to fuse together like the power rangers and write a musical.
00:03Rayneslol
00:04technomancyif you haven't heard the protomen your life is incomplete: https://www.youtube.com/watch?v=mBcDoZnN8ac
00:28hugodediff of clojure-test-mode failures https://gist.github.com/4662037
00:30technomancyhugod: whoa cool
00:32technomancyI typically use lein difftest for that stuff
00:33hugodI have a hard time interpreting the results of difftest - they seem backward to me
00:33technomancy"At the time, we noticed a void in rock and roll. A hole that could only really be filled with grown men and women painting up like robots and playing some fierce and furious rock music based on a 1980s video game. We were fairly certain no one else was going to fill that hole. But, by god, it's filled now. You can thank us later."
00:34xeqican I just plug that into my emacs config and have it work?
00:35hugodyou may want a (define-key map (kbd "C-c C-'") 'clojure-test-ediff-result) or similar
00:39technomancybut yeah ediff sounds like a good idea
00:40technomancyman... nrepl.el has more open issues than leiningen =\
00:42hugodI could do a pull request sometime - in the meantime it's here https://github.com/hugoduncan/clojure-mode/commit/a0f5520aee21aa7bd4d87ccc7a8b30c2d14b19ae
01:56aphyrOK, I know I've done this before... how do I call java functions which take List<SomeType>?
01:56aphyrGetting the usual "clojure.lang.PersistentVector cannot be cast to [LSomeType"
02:00echo-areaaphyr: Create an instance of List and add objects into it.
02:01aphyrAh, turned out to be my bad, [L is actually *array*
02:01echo-areaOr should I say "Create an instance of List that have objects to be passed"
02:39nonubynewbie question, https://www.refheap.com/paste/9043, it seems I have a problem with add method in -> macro, any ideas? just trying to get it to run first (i.e. return 0 count))
02:40aphyrnonuby: Drop the #?
02:41aphyr#() is an anonymous function, -> takes regular forms like (add :product1 1)
02:42nonubyisnt that what I want tho so %1 is subsituted with the cart from create-cart?
02:42aphyr-> does it for you
02:42aphyr(-> x (function arg)) becomes (function x arg)
02:43nonubyah i see
02:43nonubythanks very much
03:20ivanhttp://dev.clojure.org/jira/browse/CLJS-5 Chouser is a time traveler from 2020
03:25echo-areaCool
03:27xumingmingvCool..
03:30tomojis it only that ticket?
03:30tomojI've always wondered why the charts were screwed up
03:30tomojno, looks like it's more than one ticket
03:40marianoguerrahi, I define a class with gen-class on a module, let's say foo.model, the class is called foo.model.Temperature, how do I import/use/require and use it from the repl?
03:41xumingmingvmarianoguerra: first require the namespace, then import the class
03:45marianoguerraxumingmingv: thanks!
03:47josteinktechnomancy: YES
03:47josteinkyes yes yes yes yes
04:18AndChat|552816hi all
04:20AndChat|552816is there a library for generating high performance code from a subset of clojure. Sort of like scriptjure, sort of like lithium(assembler). I'm after a c-level abstraction
04:20AndChat|552816c as in the language
04:24xumingmingvlike this one: https://github.com/schani/clojurec?
04:25AndChat|552816Oo, looks like the sort of thing. thanks :-)
04:28AndChat|552816weird how the clojure community seems to be 90% on github
04:28josteink100% of clojure is
04:28AndChat|552816not that its bad. just the only other thing like it is javascript.
04:28josteinkso why shouldnt the community? ;)
04:28xumingmingvand Ruby?
04:29AndChat|552816Didn't know Ruby was there
04:30xumingmingvRuby community utilize Ruby heavily, actually the language github team use is Ruby(not Confirmed)
04:31AndChat|552816I suppose it's not as weird as the fact clojure is popular
04:31josteinkxumingmingv: I thought that was confirmed?
04:31josteinkxumingmingv: the rails exploit with a POC being someone granting themselves free access on github?
04:33bizarrefishgah, connection fail
04:33xumingmingvjosteink: wow, dont know that news
04:40_________xumingmingv Github is completely on ruby on rails
04:41cquenxhttps://github.com/blog/530-how-we-made-github-fast
04:46xumingmingvcquenx: thanks for the link
05:20headshotcan someone point me to an appropriate way to do this? https://gist.github.com/4663275
05:23headshot(locking ...)
05:24headshothmm ... still getting illegalmonitorstate
05:27headshotworks, thanks for the emotional support :D
05:27xumingmingvwhat's the solution?
05:27headshot(let [obj (Object.)] (locking obj (.wait obj)))
05:28xumingmingvwhat's the code looks like before?
05:28headshotthe java code?
05:29xumingmingvyou said you still getting illegalmonitorstate
05:30headshoti was missing x in (locking x & body)
05:30xumingmingvoh. that explains
05:30headshotyeah
05:32headshotnow my camel example works
05:34headshotnice to be back in lispland
06:07Anderkentgaah why do people use version ranges on the clojure jar. So much pain
08:10zbyis there a way to 'interpolate' a list into a map - I want to conditionally add a few keys to a map defined by a literal - I thought I would be able to do it like { :a "a" (if some-condition (:b "b") ())}
08:18xumingmingv&(into {:a "a"} [(if true [:b "b"] [])])
08:18lazybot⇒ {:a "a", :b "b"}
08:18xumingmingv&(into {:a "a"} [(if false [:b "b"] [])])
08:18lazybotjava.lang.IllegalArgumentException: Vector arg to map conj must be a pair
08:20hyPiRionzby: do ##(into {:a "a"} (filter (comp #{:b :c} first) [[:a 1] [:b 2] [:c 3]]))
08:20lazybot⇒ {:a "a", :b 2, :c 3}
08:22zby&(into {:a "a"} [(if false [:b "b"] nil)])
08:22lazybot⇒ {:a "a"}
08:22zbythanks!
08:28hyPiRionoh, sweet. Didn't knew that nil worked as well.
08:28hyPiRion,(conj {:a 1} nil)
08:28clojurebot{:a 1}
08:39josteinkplain .net, not clojureclr
08:42nurettinjosteink: is nuget anything close ?
08:42josteinkright now Im nugetting something
08:42josteinkslowly
08:42josteinkvery, very slowly
08:43josteinkPM> install-package DotNotOpenOAuth
08:43josteinkIMO that should not take 15 minutes
08:44josteinkalso nuget suffers from being not a declarative "this is how I want it" format. its a iterative/imperative set of powershell cmdlets you use to mutate your project
08:44josteinkI dont like that
08:44josteinkat least not as much as lein's handy way of doing things
08:46nurettinI like bundler
08:47nurettinI will probably like leinigen
08:50josteinkleiningen is hard not to like once you get into it
08:51marcellus123anyone know what I'm doing wrong in extending cljs.core protocols?
08:51marcellus123https://www.refheap.com/paste/9047
08:51marcellus123getting a "Symbol IEncodeClojure is not a protocol..." warning
08:52marcellus123(i just realized that should be for/map instead of doseq but that's not the problem anyway
08:56gfredericksmarcellus123: do you know for sure that protocol exists in the hversion of cljs you're using?
08:56zackzackzackAre there any libraries for accessing git from within clojure?
09:01augustlare there any text editors other than emacs that has something like paredit-mode where you edit s-expressions, not lines and characters?
09:03bltavare_augustl: vim + paredit plugin
09:06marcellus123gfredericks: looks like that's what the problem is, thanks!
09:19bosieanyone can give me a tip why this happens with leiningen www.refheap.com/paste/7867/raw
09:19bosiewhen i try to compile/run it
09:23gfredericksbosie: I've seen (ns) typos give that exception
09:24bosiegfredericks: hm i only have one ns
09:24bosieand its the same i have in my :main
09:25gfrederickshow about the clauses in it?
09:25gfrederickse.g., (ns foo.bar :okay) throws that error
09:33ohpauleeza little while back, there was a core.logic example blog post, that had to do with matching up teachers for classes
09:33ohpauleezthe teachers were something like: socrates, plato, etc
09:33ohpauleezdoes anyone know what blog that was on?
09:34ejacksonohpauleez: that was me...
09:34ejackson1 sec and I'll get you the link
09:34ohpauleezejackson: BRILLIANT!
09:35ejacksonohpauleez: https://github.com/ejackson/EuroClojure-2012-Talk
09:35ejacksonthe pdf is there too
09:35ohpauleezejackson: Thanks a ton! My Googling skills were failing me
09:36ejacksonno sweat
09:46augustltrying eclpise with CCW for the first time. How do I tell eclipse to run "lein ring server-headless" instead lf "lein run"?
09:54clgvaugustl: you have to do that from command lein. there is nothing built-in for lein plugins yet
09:54clgvlol. command line^^
09:58chronnoclgv: lol, muscle memory kickin' in
09:59augustlclgv: I see
09:59augustlclgv: so I won't be able to debug lein-ring in eclipse?
09:59yedican someone link me to a primer on protocols, records, and types in clojure? (to complement the docs)
09:59clgvchronno: humm I think "lein" was too bold in the context (2 times in his short line) ;)
10:00clgvaugustl: only if you fireup lein ring externally and connect to its nrepl
10:00clgvprovided both use same nrepl versio or at least one with no differences in protocol
10:00augustlI see
10:00clgvaugustl: you can use the replview to connect to an external nrepl
10:12augustlclgv: you happen to know if there's a way to edit the keybindings of the strict/paredit mode?
10:12augustlalt+r, alt+s and alt+j doesn't seem to do anything on os x
10:14Anderkentaugustl: if it's ccw, all key bindings are managed by eclipse
10:15augustlfound key bindings in eclipse settings, and option+r is bound, but it doesn't do anything when I press option+r in an editor
10:15Anderkentit's likely caught by the os and not forwarded to eclipse then
10:15Anderkenttry remapping to something else
10:16augustlah, it just didn't provide any feedback when used in a context where it doesn't do anything
10:17augustlseems the CCW paredit doesn't have nearly as many features as Emacs paredit though
10:17Anderkentyes, that's pretty much why I went back to vim+paredit and only fire up ccw if I need the debugger
10:18augustlhttps://www.refheap.com/paste/9052 for example, if I want the statement on the last line to be inside the let block, I put the cursor before the parenthesis that closes the let block and press C-right in emacs
10:18augustldoesn't seem to be anything like that in CCW
10:19clgvALT*Arrowkeys should do somethign
10:21augustlclgv: alt + up/down just moves the entire line up and down
10:21augustlalt + right/left moves the cursor
10:23augustlthere's something bound to command+shift+arrows but that just does text selection
10:24nDuffThe attitude on the part of the maintainership seemed to be "I don't need those functions, so you don't either" when I noted things that were missing.
10:24augustlmy current issue with emacs is its lack of a project mode. So I guess I should fix that ;)
10:24augustlI have 5-6 leiningen projects up at the same time, most of them have the file "core.clj" etc, it becomes hard to navigate after a while
10:26augustlhmm, seems CCW is focused around selection and doing the right thing when the s-expressions are first written, instead of arbitrarily moving them around at any time like emacs does
10:26augustlselecting something and typing ( wraps the selection in parens for example
10:27Anderkentaugustl: unfortunately that means correcting any kind of error usually requires leaving paredit mode and manually adjusting the parens
10:27Anderkentwhich is meh
10:27augustlAnderkent: seems like you're right yeah..
10:28no7hing@augustl doesn't emac prefix different files with the same filename with the directory they're in?
10:29no7hingwhich is different in most cases
10:29augustlno7hing: yeah but it's still anoying to navigate the 5 "something/blah/core.clj" files
10:29Anderkentstop calling everything core then :)
10:30augustlnot going to give my files shitty names just because emacs doesn't know about projects :P
10:30tmciverI just use a separate emacs session for each of my projects.
10:30augustlthat's just an example too, I currently work on two angularjs apps at the same time, and they both have home-controller.js home-controller.clj, and app.js, for example
10:31llasramaugustl: Check out the `customize`-able variable `uniquify-buffer-name-style`
10:31Anderkentfuzzy search hj / hc / aj ?
10:31augustlllasram: I already use that one, yeah
10:32augustlAnderkent: I use tramp fuzzy search now, if I type hj, I get two files, one for each project
10:32Anderkentoh thats true, js and clj both match. hjs?
10:32Anderkentanyway :P
10:32llasramaugustl: Ah. Huh. Then, I really don't see the problem, honestly...
10:33dobladezAnybody using configleaf and/or environ ? or any other suggestion for handling project configuration?
10:33augustlllasram: the problem is that I have multiple files with the same name, but in different projects
10:33augustlllasram: so I have to think when I switch buffers, I can't just M-x b hj RET
10:33augustlbecause that will occasionally give me the home-controller.js from the other project
10:34dobladezwould be great to unify environ and configleaf by the way
10:34augustldobladez: I just have a .clj file with a map that I read-string
10:34augustldobladez: I read the actual file from classpath, so the environment gets to decide which file that should be read
10:34llasramaugustl: I see. So you'd like the default to be the one in the same logical "project" as the current file?
10:35augustlllasram: that would be nice, or even better to have the buffer list only contain buffers for files in a certain directory (project)
10:35augustlthen some way to easily switch between directories (projects) and turning it off for arbitrary poking
10:35llasramHave you seen technomancy's find-file-in-project?
10:35llasramAnd I've been using this guy instead: https://github.com/hoffstaetter/find-file-in-repository
10:36augustlis that just for opening new files, or for the buffer list too?
10:36dobladezaugustl: thanks
10:36augustlllasram: looking them up, thanks :)
10:36llasramaugustl: Just for "opening" files, but if you re-open an already-opened file, it just witches to the existing buffer
10:36llasramswitches even
10:37augustlllasram: I'll check it out, hopefully it does fuzzy matching etc like tramp does :)
10:37llasramThey both use ido, so the support whatever ido does
10:37augustlthis also looks promising: https://github.com/tlh/workgroups.el
10:37augustlseems to be abandoned though
10:44FoxboronIs there any lists of Clojure keywords and/or libraries? available?
10:44no7hingmaybe the cheat sheet? http://clojure.org/cheatsheet
10:44no7hingit's probably not comprehensive though
10:45dnolenFoxboron: http://www.clojure-toolbox.com
10:45dnolenFoxboron: and I recommend the cheatsheet
10:45no7hingnow this looks comprehensive: http://clojure.github.com/clojure/
10:46Foxborondnolen: the problem with the cheatsheet is that, there are functions there also. Making a little auto-completion for Sublime. Also a list of Errors or whatnot would be awsome.
10:47nDuffFoxboron: Hmm. Going to be hard to compete with autocompletion on emacs (communicating over nrepl to see what's actually defined in active namespaces in practice).
10:47JoeBeardI'm about to setup a lubuntu VM to use with Clojure+NRepl+Emacs. Is there any advantage to use either 32bit or 64bit?
10:48FoxboronnDuff: yes i know. But its better then nothing ^^
10:48nDuffJoeBeard: How much memory are you going to allocate it?
10:48FoxboronnDuff: allready been maintaining function snippets for Clojure along with a lein build file. Just expanding it while i am fixing a few things.
10:49JoeBeardIt's sitting on an 8GB host, so somewhere in the 2-4GB range. What's ideal?
10:49nDuffJoeBeard: If it's a large VM, make it a 64-bit system -- then you'll be able to have apps efficiently address within it. If it's a small one, 32-bit -- code size is that much smaller, and you don't need the address space if you aren't going to allocate much RAM.
10:49nDuffJoeBeard: 2GB is small enough to be fine 32-bit. 4GB is where I'd probably make it 64-bit.
10:50JoeBeardnDuff: Any issues of library availability on both platforms? Or is memory the only concern?
10:51nDuffJoeBeard: No library availability issues relevant.
10:51JoeBeardI'd also like to play with ClojureScript later. Any issues there?
10:51nDuffJoeBeard: ...it's just a tradeoff between performance, memory efficiency and addressable space.
10:52nDuff(actually, your library availability is going to be better with a 64-bit OS install, since you can install 32-bit apps there).
10:52JoeBeardnDuff: yup, thanks. Just wanted to make sure there were not any Clojure-specific gotchas.
11:01gfredericksis there a better name for (fn map-nested [m k f] (update-in m [k] #(map f %)))?
11:01gfredericksmaybe update-seq
11:04TimMcgfredericks: You're needing that pattern a lot?
11:12gfredericksTimMc: yep
11:13arrdemgfredericks: maybe (update-by-map obj path fn & args)?
11:13gfredericks I was also looking at adding the & args at the end
11:13gfredericksupdate-by-map sounds reasonable
11:13gfredericksor maybe update-map
11:14arrdemI toyed with update-map.. but it seems confusing since it's intended to be applied to a map the fact that (map) is used in the update isn't clear
11:15gfrederickshmm
11:16arrdem,(doc partial)
11:16clojurebot"([f arg1] [f arg1 arg2] [f arg1 arg2 arg3] [f arg1 arg2 arg3 & ...]); Takes a function f and fewer than the normal arguments to f, and returns a fn that takes a variable number of additional args. When called, the returned function calls f with args + additional args."
11:17arrdem(defn update-by-map [obj path update-fn & args]
11:17arrdem (update-in obj path
11:17arrdem (fn [obj]
11:17arrdem (map (apply partial (cons update-fn args))
11:17arrdem obj))))
11:17arrdemI think
11:18gfredericksI don't think you can use partial there
11:19arrdemthe (con) is probably wrong, but I think that partial is applicable. lemme kick off a repl and try.
11:19gfredericksthe assumption is that the first arg to the update-fn is an element of the seq
11:19gfredericksyou need some sort of butfirst-partial
11:21clgvgfredericks: how about `(partial map update-fn)`
11:22gfredericksclgv: as a replacement for update-by-map?
11:22gfredericks(update-in m [k] (partial map update-fn))?
11:22clgvyeah that will work
11:22gfredericksyeah I knew that was possible
11:23gfredericksI've got like 15 instances of this in my code so it seems worth having its own thing for it
11:23arrdempasses my test case...
11:23arrdem(inc clgv)
11:23lazybot⇒ 5
11:23clgvgfredericks: do they all have more similar semantic? that could help with naming it
11:24gfredericksthe semantics are that my dataset has sequences under particular keys and I want to transform the elements in the sequence
11:24clgvfor example if those were organization maps that assign jobs to worker, they could be called update-job-queue or similar
11:25gfredericksah gotcha
11:25gfredericksno I don't think so
11:25clgvdamn
11:29zbycemerick - I was thinking about adding the remember-me? from your TODO - but I don't see how this can be done without using the session wrapper inside friend code - do you have any plans about it?
11:30z3phyranybody tried joxa?
11:32clgvz3phyr: looks very clojure-y - I think it was mentioned here a few times already
11:33z3phyrclgv the best thing about it is - Its self hosted from the start. and clojure is still seeking clojure in clojure
11:34clgvz3phyr: I think that's hardly an argument to convince me to use it ;)
11:36marcellus123I asked this a few hours ago, but anyone know what I'm doing wrong here in my attempt to extend a protocol from core.cljs? turns out i AM using a correct version of cljs (I thought that this was the issue before but nope)
11:37z3phyrclgv I am talking about the language itself. Really it's worth a try for a clojorian
11:37marcellus123 https://www.refheap.com/paste/9047
11:37z3phyrOne could learn from a clojure with scheme like simplicity - that's Joxa
11:37marcellus123(doseq should be for)
11:37lucianclgv: it's stopping me from trying clojurescript more seriously, though :)
11:39lucianevery time i try to build something in it i am reminded how extremely annoying the jvm is
11:39TimMcz3phyr: Too many parens. :-P
11:42z3phyrTimMc Its a lisp ¡
11:43TimMcz3phyr: I've gotten accustomed to the use of [] in Racket and Clojure. It makes the code more readable. I'm being picky, mind you, and more than slightly facetious.
11:44z3phyrTimMc [] {} makes code perlish to me. thats not a prob though.
11:45TimMcPerl-ish? You ain't seen nothin' yet.
11:45TimMc~rest
11:45clojurebotrest is easy to write without alphanumerics: https://www.refheap.com/paste/5980
11:46TimMc(scroll to the bottom)
11:47clgvTimMc: you were bored? :P
11:47gfredericksTimMc is the curator of swearjure
11:47hyPiRionHe's the Rich Hickey for obfuscators.
11:47hyPiRion/s/for/of/
11:48gfredericksanybody who wants to contribute to swearjure has to have signed TimMc's swearjure CA
11:48gfrederickshe accepts patches on dev.swearjure.org/jira
11:48hyPiRionoh swearjure.org
11:49hyPiRionhahah, not taken
11:49hyPiRionTimMc: What are you waiting for?
11:50clgvTimMc: compile that to disk^^ how many java classes do you get? ;)
11:51clgvI am guessing 7
11:51clgvlol swearjure exists
11:57hyPiRion~swearjure
11:57clojurebotSwearjure is http://hypirion.com/swearjure
11:58technomancyjosteink: let me know how it works for you =)
12:12TimMcclgv: "Bored" wouldn't quite be the right word for it.
12:12seangroveTimMc: Deeply angry with the world, and wanting to inflict suffering?
12:13seangroveWhat if some poor misguided soul read hyPiRion's post and thought, "Oh, this looks good for production?"
12:13seangroveIrresponsible with your great powers...
12:13hiredmandnolen: turns out to be my fault because I am using a copy of the defc macro without qualifying ::subst correctly
12:14clgvTimMc: what is the right word?
12:15hiredmanI am attaching metadata to the reified constraint and when available using that to help generate a rest api call from a goal
12:15TimMcseangrove: What have I done?!
12:17TimMcclgv: Not sure there's a word for it, actually. Whimsical + hacker-minded (wanting to explore the boundaries of a system).
12:17TimMcAlso wanting to make a monstrosity, in the manner of a mad scientist.
12:17clgvTimMc: so I'd go with "frankensteined" ;)
12:19hyPiRionseangrove: Then I have lived enough to see myself become the villain.
12:20hyPiRionlong enough.
12:20clgvhyPiRion: well, then choose a proper lair ;)
12:22hyPiRionIsn't the "oh, even Clojure can be ugly" a perfect lair for a villain? That must be the most evil villain ever.
12:23ravsterheloo everyone
12:46seangrovetechnomancy: Would you compare Pulse to riemann at all?
12:46seangroveOr do they serve completely different purposes?
12:47dnolenhiredman: gotcha - still would that namespaced keyword in defc resolve correctly - it seemed suspicious to me.
12:47technomancyseangrove: I haven't looked at riemann in detail, but it looks similar. probably better.
12:47dysocoWhat would you suggest as learning resource for someone who is new to Clojure and relatively new to the LISPs ? (I have used a little Scheme with SCIP, but not too much), I read good things about The Joy of Clojure but it doesn't look like an introductory article.
12:47clojurebotc'est bon!
12:48craigbrodysoco: i think it works as ne
12:48dysoco"as ne" ?
12:48craigbrodysoco: as an intro that is
12:48dysocoah I see
12:48hyPiRiondysoco: http://www.clojurebook.com/
12:48dysocoI'll take a look at clojure.org/getting_started
12:48no7hingi can recommend both joy of clojure and clojure in action
12:49loganlinnanybody aware of (command line) tools for renaming/moving namespaces? like a fancy search&replace.
12:49hyPiRionThat's what recommend, I would not recommend Joy of Clojure as an intro to Lisp and Clojure.
12:49technomancyseangrove: pulse is being decommissioned in favour of https://github.com/ryandotsmith/l2met which is less flexible but dramatically simpler in that there is no server-side configuration; you change your metrics by changing the format of your logging.
12:49hyPiRionIt's a great book, but not for learning Clojure.
12:49dysocothanks then, I'll take a look at that one.
12:50dysocoand if I like Clojure I might read The Joy of Clojure later.
12:50loganlinn+1 for Joy of Clojure
12:50dysocobtw, what do you use as Editor/IDE? I'm more of an Emacs guy I assume you use that.
12:50ejackson"Clojure Programming" is all you need @clojurebook
12:50technomancyseangrove: I think consuming the log stream is a much better way to go vs having a specific event server, but if you don't already have good logging infrastructure in place it can be challenging
12:50hiredmandnolen: yeah, just fixing the namespacing on the keyword in my copy of the macro made it work
12:51hyPiRiondysoco: Well then, if you're using emacs then that's a plus because most tools are emacs tools.
12:51bizarrefishI gots to get my head around emacs... *sighs* . It's so freaking cool, but I seem to be pushing some kind of key combination memorization limit D:
12:51hiredmandnolen: so the reason you could not reproduce is the defc I was using was in a namespace that is not clojure.core.logic
12:52hiredmanbizarrefish: I find myself using M-x with smex-mode more often then trying to remember key combos
12:53hiredmansmex-mode gives ido style completeion to M-x commands
12:53bizarrefishsmex mode...guess I should googles that
12:53hiredmanmakes it easy to discover commands
12:53dysocoI just find Emacs a pain to configure, your init.el file grows and then you have more than one file and it's a mess.
12:54piskettidysoco: emacs-live saves the day
12:54dysocoI guess I'm starting clean now, and will try to configure it cleaner
12:55technomancyactually splitting things among multiple files in Emacs Lisp is substantially simpler than in Clojure
12:55piskettiI used to have my own configurations but after switching to emacs-live, I've never looked back
12:55piskettiespecially for Clojure
12:56technomancyI recommend adding in third-party functionality slowly so you can have a chance to understand it in case it doesn't work as you expect.
12:56piskettiThe "pack" concept makes it straight-forward to make your own configurations
12:59piskettitechnomancy: I guessthat's true if you are willing to learn emacs inside out (and that is respectable goal)
13:00technomancywell, even if you just want to debug some behaviour you don't like
13:00technomancyif you dump a bunch of stuff in at once it can be much more difficult to track down the problem
13:00technomancy(speaking from experience with the starter kit)
13:01dnolenhiredman: yes, what I meant was more a question about general rule of thumb when writing macros
13:02dnolenhiredman: i.e. don't put :: keywords in them
13:04jweissare there any graph libraries for clojure (as in replacements for clojure.contrib.graph)? i'm looking for functions to detect loops, give the path from one node to another, etc
13:05dnolenhiredman: and I was trying to see if you agreed w/ that principle :)
13:08bosieanyone can give me a tip why this happens with leiningen www.refheap.com/paste/7867/raw
13:08bosiewhen i try to compile/run it
13:11dobladezbosie: your namespace declaration is probably wrong
13:12bosiedobladez: i only have one file that has (ns blah-blah.core)
13:12bosie(ns blah_blah.core) actually
13:13bosieand project.clj has ":main blah_blah.core"
13:13dobladez_ should be -
13:14bosiethat was it
13:17bosiedobladez: thx
13:20piskettitechnomancy: 100% agreed. It's just it's a lot easier to start with a fully functional setup.
13:21seangrovetechnomancy: In your case, are you talking about something like logplex?
13:21technomancyseangrove: yeah
13:22technomancysetting up a separate event stream for human-readable stuff vs machine-readable stats isn't ideal IMO
13:23technomancy(but if you don't have a proper log stream that shouldn't stop you from setting up an event stream)
13:23seangroveWhat constitues a 'proper log stream'? Just logging off to a service that stores it?
13:24seangroveHaving namespaced-logs...?
13:24technomancyseangrove: mostly just treating logs as a unified stream rather than a bunch of files sitting somewhere
13:24technomancyk/v pairs helps but isn't necessary
13:41ChongLispeaking of keys
13:41ChongLihow'd that key signing party at the conj go?
13:42ChongLiI just finished watching your talk on leiningen 2
13:42technomancyoh man, the one where I was wracked by disease? =\
13:42ChongLiyeah
13:43ChongLiit's extremely important for that web of trust to get built up
13:43technomancyChongLi: it took all I had to make it through the talk; didn't have it in me to organize much beyond that =\
13:44ChongLiperhaps eventually you'll turn on requiring signed and trusted deps by default?
13:44technomancyChongLi: that's the idea behind the clojars releases repo
13:44technomancyunfortunately that turned out to be more work than expected, so we pushed it off beyond the lein 2.0.0 final release
13:44ChongLithat's fine
13:45ChongLican't let feature creep dominate
13:45ChongLithe one question I have about the web of trust is this:
13:45technomancyso in lein3 signed deps will be required by default and limiting it to trusted deps will hopefully be easy to enable
13:45ChongLiwhat if the attacker also redirects the DNS for the key server
13:46ChongLiand re-creates a fake web of trust?
13:46technomancythat's why you have to verify the fingerprint in-person
13:47technomancyyou can't just sign keys you get from the Internet without a face-to-face connection
13:47ChongLiright, I get that part
13:47ChongLibut this fake web of trust would be accompanied by a fake repo that mirrors everything
13:48technomancyif you get fake keys from a hostile key server they won't match up with the signatures you have locally
13:48ChongLiahhh
13:48ChongLiso even a fresh leiningen install will be able to verify that?
13:48technomancyit'd be gpg's job rather than lein, but yeah
13:49ChongLiso the only real way to compromise it then would be to attack a user who had no local keys
13:49technomancyright; if you don't have a link into the web of trust you have no reason to trust it
13:50ChongLialthough I suppose that's where we bring in help from the user's package manager
13:50ChongLihave a leiningen package on the repo that's trusted by their package manager
13:50pjstadigyou don't have to trust any packages
13:50ChongLiand then you have an unbroken link; assuming the user's operating system is not compromised
13:51pjstadigyou trust a key that you've verified in person, or some key in that transitive web of trust
13:51technomancyyeah, you could have apt-get bring in something since it has to be trusted implicitly. I haven't thought that angle through much myself
13:51pjstadiganything you download you verify against your web of trust
13:51ChongLipjstadig: not every new clojure user will have met someone in person
13:53gfredericks40% of all clojure users have never met another human
13:53ChongLiit seems reasonable that the source of trust might come from the same place the user got their JVM
13:53pjstadiggfredericks: i don't trust you until i've met you in person
13:53arcatanin fact, 23% of all clojure users are robots
13:54pjstadigChongLi: i don't see how that would work
13:55pjstadigyou would distribute a default WoT with leiningen that people would import into gpg?
13:55ChongLipeople would have to trust wherever they got leiningen from
13:55dnolenso Java is GitHub lang #3
13:55pjstadigthe way gpg's WoT works *you* have to decide which keys you trust
13:55gfredericksdnolen: by project count or LoC? :)
13:56SegFaultAXdnolen: That's not really surprising, is it?
13:56pjstadigChongLi: right, but for gpg to verify a jar you download from clojars you have to determine whether you trust the key with which that jar was signed
13:56ChongLigfredericks: either way isn't a very accurate measure
13:56technomancypjstadig: but you have to trust gpg itself as well as whatever source from which you obtained it.
13:56pjstadigsure
13:56pjstadigbut that's not enough
13:56pjstadigyou also need your own WoT
13:56SegFaultAXdnolen: (Also, I picked up the Reasoned Schemer this morning. Datomic has finally convinced me to learn logic programming properly)
13:57technomancypjstadig: sure, it's just a matter of seeding it
13:57ChongLiI want to get the reasoned schemer as well
13:57SegFaultAXChongLi: Can I make a suggestion?
13:57dnolenSegFaultAX: well it's taken some time for the popularity of GitHub to adjust to real world lang usage.
13:57ChongLiI'm leery of the ebook though; from what I heard it was bad
13:58ChongLiSegFaultAX: yes
13:58dnolenChongLi: yes just get the paperback
13:58technomancywow, when did JS beat Ruby?
13:58SegFaultAXChongLi: DO NOT buy the kindle version.
13:58dnolenSegFaultAX: cool, tho Datalog & Prolog style Logic Programming is quite different.
13:58pjstadigtechnomancy: where "seeding it" could mean verifying a key in person, or importing someone else's WoT
13:58dnolentechnomancy: probably a year ago
13:58SegFaultAXI regret that decision so much.
13:58SegFaultAXIt's just impossible to read.
13:58SegFaultAXThe text doesn't resize, and it's absolutely tiny.
13:58ChongLithat's a real shame
13:59dnolenClojure's #23 which seems about right - tho 2 of the top watched Java repos are Clojure projects
13:59technomancywow, things are really shaken up
13:59ChongLiit sounds like they ran it through one of those utilities that screenshots every page of a pdf or something
13:59SegFaultAXChongLi: I think it's partially because of the format. It's more like a dialog with an unseen teacher.
13:59technomancyelisp used to be #11, and it dropped to #17
13:59technomancyI wonder if they changed how it's calculated
13:59ChongLitechnomancy: I thought the same
13:59dnolentechnomancy: they have and not always for the better. Prolog is inexplicalby at #20 or something
14:00SegFaultAXdnolen: Of course. But I figure if I can at least understand miniKanren, that's probably more than enough to be effective with eg Datalog.
14:00ChongLiSegFaultAX: sounds interesting
14:00SegFaultAXdnolen: Not that Datalog is particularly complex.
14:00SegFaultAXdnolen: I'm only on the second chapter, but I'm having a hard time wrapping my mind around how unification must be implemented.
14:01SegFaultAXChongLi: It's great. Except impossible to read on my Kindle Touch. :(
14:01ChongLiSegFaultAX: do you read a lot of academic papers on your kindle?
14:01dnolenSegFaultAX: recursive decent + updating / checking a map of known bindings
14:01SegFaultAXChongLi: Almost never.
14:01ChongLiah, I've been investigating different methods of converting them to fit
14:02ChongLi2-column papers are problematic
14:02SegFaultAXdnolen: Is unification the most complicated operator?
14:02bawrChongLi: if you find one that works, do tell
14:02SegFaultAXChongLi: I always keep them in their source format and read them on my laptop. It's not worth trying to make it work on a kindle.
14:02ChongLiI tried amazon's conversion service and it seemed to work pretty well
14:02bawrSegFaultAX: not reallt, at least naive unification
14:02ChongLiit converted it to a single column with proper justification
14:02dnolenSegFaultAX: no unification is actually pretty easy to understand. the monadic search is way more of a brain teaser IMO
14:03ChongLiyou email it to your_id@free.kindle.com
14:03dnolenSegFaultAX: the book fully explains the unification bits
14:03SegFaultAXdnolen: I'll hold off on asking about that until I get a little further along with miniKanren. :)
14:03ChongLiand make sure the subject line is convert
14:03dnolenSegFaultAX: and had waves the monadic search
14:03dnolenhand waves
14:03ChongLiI'm also going to try kindlegen
14:03ChongLinot sure if it's the same tool they run on their server or not
14:04bawrChongLi: oh, that's pretty cool, didn't know about that
14:04ChongLiI'm about to dig into the flapjax paper
14:04SegFaultAXdnolen: Is the Datalog implementation used in Datomic open source?
14:05ChongLiI just got so sick of writing imperative event handling code
14:05SegFaultAXChongLi: Link?
14:05dnolenSegFaultAX: it is not
14:05ChongLihttp://www.cs.brown.edu/~sk/Publications/Papers/Published/mgbcgbk-flapjax/
14:06SegFaultAXdnolen: Bummer. :/ Can core.logic do everything that Datalog can do?
14:06dnolenSegFaultAX: they have radically different goals - so only in a trivial sense.
14:07SegFaultAXdnolen: Would you mind expanding on that a little for me? I'm pretty new to the idea of logic programming.
14:07dnolenSegFaultAX: Datalog is set oriented so ideal for queries against something on disk. core.logic is tuple oriented, supports constraints, and can "generate" data.
14:07AimHereWe live in a world where turing completeness is now trivial
14:08Apage43wait did i hear something about de-double-columnizing academing papers for kindle
14:08ChongLiApage43: yeah
14:08Apage43*academic
14:08SegFaultAXdnolen: Does that imply that core.logic can do /at least/ everything that Datalog can do?
14:08Apage43I would be all over that
14:08ChongLiemail to your_id@free.kindle.com subject: convert
14:08Apage43ah, and it'll do the magic? I gotta try this
14:09ChongLiit isn't perfect, but it's pretty good
14:09dnolenSegFaultAX: it can but it's not ideal - core.logic doesn't manipulate sets
14:09dnolenit works on one piece of data at a time
14:09DigitalJackChongLi: don't you have to add the email address to "acceptable senders" list first?
14:09SegFaultAXdnolen: Ah, I see.
14:10DigitalJackas a spam prevention mechanism
14:10ChongLiDigitalJack: whatever your sending address is, yes
14:10ChongLinobody can send stuff to your kindle unless they're on that list
14:10ChongLiand I'm pretty sure they verify the domain with SPF
14:13ChongLiI wonder if an attacker would ever be determined enough to show up at a conj impersonating someone in order to get their key signed
14:24jsabeaudrydoseq that collects results?
14:24jsabeaudryor dotimes that ocllects results
14:25dnolenjsabeaudry: map or list comprehension (for)
14:25jsabeaudrydnolen, so (doall (for ...)) ?
14:26dnolenjsabeaudry: yes
14:26jsabeaudrydnolen, thanks! I was seraching for a (doall (for and couldnt find one! I can stop searching now :)
14:29nathanichello folks, can anyone recommend a medium-sized clojure codebase (say on github) for an intermediate student of clojure? i'm looking for an example to show someone who knows the syntax but not how to design "clojurey" applications.
14:33technomancynathanic: leiningen has some hairy bits, but it's an option. only about 3kloc.
14:34technomancythe leiningen-core/README.md file should give you a decent overview; start in leiningen.core.main/-main and go from there
14:35nathanictechnomancy: hmm, i hadn't thought of lein, but that sounds very promising, particularly since it's such a useful tool. and it's something my friend has heard of. thanks!
14:36technomancydon't look too closely at the profile merge logic; it's intimidating
14:37jcidahoq about nrepl & nrepl.el - when output is being logged to the *nrepl-server* buffer it'd be nice to track the tail of the output - the cursor sticks to the tail of the output
14:37jcidaho^ make sense?
14:37jcidahothis is the case with swank/slime
14:37technomancyjcidaho: yeah, that would be nice; not sure why it's not that way
14:39jcidahok - I'm up for having a look - would've thought it's on someones hitlist
14:49jballancmemory fails me at the moment...I vaugely recall a Clojure tool to create DB seeds programmatically?
14:49jballancanyone remember such a thing?
15:15jsabeaudryIs there a more idiomatic (let [r (something)] (dostuff) r) ?
15:16Frozenlock(do (dostuff) (something)) ?
15:16nDuffjsabeaudry: there's doto, but it's not quite for that use case.
15:17amalloyuseful has (returning (dostuff) (something)), provided that you don't need r inside of dostuff
15:17amalloyer, i guess you wanted the opposite? anyway, whatever you put first gets returned
15:18nathanicjsabeaudry: it's not super mainstream, but you might enjoy the non-updating arrow from https://github.com/rplevy/swiss-arrows
15:19jsabeaudryamalloy, In what namespace can I find that? (clojure docs says swank.util )
15:20degDoes Clojure have any issues running on OpenJDK? I'm rebuilding my dev environment, and am tempted to finally try OpenJDK instead of Oracle Java.
15:20winkanyone going to FOSDEM on the weekend?
15:20jsabeaudrydeg, has been running flawlessly here
15:20ChongLisame here
15:20amalloy$google clojure useful github
15:20lazybot[flatland/useful · GitHub] https://github.com/flatland/useful
15:21degjsabeaudry, ChongLi: Thanks, good to hear. Not to start an open-source or anti-Oracle flame war, but I'll be glad to move to open.
15:21dbushenkohi all
15:22dbushenkowhich is the best pattern matching library for clojure?
15:22josteinkif Im trying to push something to heroku and it fails with something about nullpointer exceptions and failing to compile with profile production...
15:22josteinkdoes that sound familar?
15:22josteinkI did try to push it first, but tehn I saw it used lein 1.7, and only change I did was force it up to 2.0
15:22josteinkafter that it failed
15:22ChongLideg: haha, I don't think you'll find too many big supporters of oracle in here
15:39wei_say there's a (def endpoint "/_fetch") in a library, and I wanted to change that def in my calls without modifying the library? would I be able to do that?
15:39wei_(binding [endpoint "/my/_fetch"] …) doesn't seem to do it
15:39ohpauleezwei_: In shoreleave or fetch?
15:40wei_yep. wanted to change the remote-uri
15:40ohpauleezhmm, that should definitely work
15:40ohpauleez(I've done it before on s prod system
15:40ohpauleezyou have to change it on the client and the server
15:40amalloyuhm, if it's not declared dynamic...
15:41ohpauleezno it is
15:41wei_binding works the same in cljs right? I'm getting a lot of cljs.main/remote-uri not declared ^:dynamic warnings
15:41wei_ah, it's not declared dynamic in fetch
15:41wei_https://github.com/ibdknox/fetch/blob/master/src/fetch/remotes.cljs
15:42ohpauleezOn the ring handler (and in the latest Shoreleave on master) you specify a different endpoint at middleware setup time
15:43ibdknoxI just set! it in fetch
15:43ohpauleezbecause he "don't give a f*%^&"
15:43ohpauleez:)
15:44ibdknoxyep
15:44ibdknoxlol
15:44ivanthe Enfield logo is particularly clever http://blog.fogus.me/2013/01/21/enfield-a-programming-language-designed-for-pedagogy/
15:44ibdknoxin almost every case you really mean to say "I want the remote URL to be this at all times"
15:44ivana good puzzle if you don't see it immediately and nobody spoils it ;)
15:45wei_so ibdknox: (set! remote-uri "/my/_fetch") ?
15:45wei_that doesn't seem to be working
15:46ibdknox(set! fetch.remotes/remote-uri "..")
15:47technomancydeg: leiningen is tested more or less exclusively on openjdk
15:47wei_ibdknox: right. thanks!
15:48technomancywell, I guess some of the contributors test on macs which probably use oracle, but myself and most people pushing patches avoid oracle
15:49technomancyplus travis
15:49rboydivan: it appears to be a lambda tennis racquet. quite clever indeed!
15:49rboyd(I don't get it)
15:50ivanindeed. I had to sleep on it.
15:50hyPiRionhah, I didn't get it before you said it was a racquet.
15:51rboydhomage to racket the language?
15:51rboydworst logo ever
15:52ibdknoxrboyd: at the end he says he's describing racket
15:53mybuddymichaelAnyone here using emacs-live on a Mac?
15:54rboydoic
15:57FrozenlockIs it normal that clojure.string/split in cljs accepts a string as the separator, but accepts only a regexp in clj?
16:03Phonatacidoh hi. I'm trying to print laaarge data to files using the '*print-dup* true' binding (actually i'm serializing the data). But I want to be able to interrupt the process whenever i want. So I thought I'd subclass FileWriter and override the write method and check the thread's interrupted state every 1000 char/byte or so. But I'm not sure which method(s) I should override. The char[] one or the String one ? The code I'm
16:03Phonatacidusing is very similar to that one : http://clojuredocs.org/clojure_core/clojure.core/*print-dup*
16:04nDuffPhonatacid: If you're using a BufferedWriter to map your Writer, you can afford to check more frequently... maybe even every call.
16:05nDuffPhonatacid: ...and given as the writer interface only has one virtual method, it's obvious what needs to be implemented. :)
16:07dnolenFrozenlock: probably just an oversight
16:08Frozenlockdnolen: Does this mean I should make sure I use a regexp instead of a string?
16:11dnolenFrozenlock: if you want to future proof your code so it works in both places yes.
16:13Frozenlockdnolen: Noted, thank you very much.
16:19dyresharkis there a function that can be used to make something a seqable object if it's not already?
16:19dyresharki.e. it turns [1] -> [1], or 1 -> [1]
16:20AimHereIsn't seqable a protocol you can just extend?
16:21tomojnot on the jvm
16:21technomancyit's not, but even if it were you shouldn't extend protocols you don't own to types you don't own
16:22AimHereYou shouldn't? There's been more than a few evangelical blogs touting that as a selling point of clojure!
16:22ibdknox,(let [x 1] (if (coll? x) x [x]))
16:22clojurebot[1]
16:22technomancyAimHere: blogs! blogs will always mislead you.
16:22ibdknox,(let [x [1 2 3]] (if (coll? x) x [x]))
16:22clojurebot[1 2 3]
16:22tomojalso, seq works on Seqable, null, Iterable, arrays, String, Map..
16:22technomancydyreshark: useful has a "fix" function that generalizes that pattern
16:22ohpauleezAimHere: I think it's ok if you REALLLY know what you're doing. It is indeed one of the selling points of protocols. But the protocol needs to be very well specified
16:23ohpauleezessentially it amounts to system safe monkey-patching
16:23ohpauleezand yes, one of the selling points - because it's there when you need it, and it's not broken like most common solutions in that space
16:24tomojit's not safe if you don't own either the protocol or the type
16:24dyresharktechnomancy: ibdknox: thanks
16:24nDuffAimHere: Extending protocols you don't own to types you do own is useful. Extending protocols you do own to types you don't own is useful. Are you sure the blogs you were reading weren't touting either of those things?
16:24nDuffs/useful/useful and sane/g
16:25nDuff...except when I'm taking ownership of one or the other, ie. writing a Clojure library for $FOO
16:25AimHereI seem to recall the point was that if you owned the protocols or the types, then it wasn't vastly more impressive than what people did already in object orientated languages
16:26AimHereBut my memory is hazy on these things
16:26technomancyAimHere: also: evangelistic blogs are especially untrustworthy
16:26technomancyeven more so that blogs in general I mean
16:26AimHereNot like IRC, which is the fount of all wisdom!
16:26technomancynow you're getting it! =D
16:26tomoj"impressive" means like "ooh look a regex is a function now wow!"?
16:27tomojI probably don't understand the point :)
16:27technomancytomoj: dammit... that's the one thing I really wish protocols could offer, but they don't. =(
16:27ibdknoxare there many evangelical clojure blogs?
16:27tomojwell, IFn isn't a protocol, so that's unfair :)
16:27ibdknoxit works in CLJS, at least :)
16:28technomancytomoj: never will be on the JVM, according to rich
16:28ohpauleezI know, that's one of the best part of CLJS
16:28ibdknoxerr evangelistic rather
16:28tomojoh? why not
16:28ohpauleezIFn, count, all the things you want to be protocols
16:28technomancybecause hotspot can't inline it away
16:28tomojouch
16:29ohpauleezAimHere - it's ala carte polymorphism, which other OO languages have, but it's often conflated with half implemented classes ala mixins
16:30ohpauleezWhat you get is fast generic dispatch based on type, and participation into an abstraction
16:30ohpauleezprotocols allow you to participate in abstractions
16:30ohpauleezto that degree I think you should define and extend whatever protocols make sense, and allow you to program to the interface (the abstraction/the protocol)
16:30weavejesterI've been considering writing a library of protocols around common database patterns.
16:31weavejesterBut I'm not sure if it's a good idea yet.
16:31ohpauleezit definitely could be, but it's unclear if you'd just be reimplementing JDBC's interface
16:31weavejesterI was thinking something like...
16:32weavejesterKeyValue protocol. LexicalOrdering protocol. etc.
16:32weavejesterSo S3 would be a key-value store with lexical ordering of keys.
16:32weavejesterFor example.
16:32ohpauleezthat would definitely be cool - it'd make writing and composing services a lot easier
16:33weavejesterYes, assuming I can pigeonhole functionality effectively. The devil might be in the details.
16:33ohpauleezfor sure
16:33ohpauleezI just created all the protocols for the Leap Motion
16:34weavejesterBut I'd like to be able to say, "I want a hierarchical data store for comments", and not have to care about the implementation so much.
16:34weavejesterLeap Motion?
16:34weavejesterOhhh
16:34weavejesterThat thing. What's it like?
16:34ohpauleezhttps://github.com/shoreleave/shoreleave-baseline/blob/master/src/shoreleave/remotes/http_rpc.cljs
16:34ohpauleezwhoops
16:34ohpauleezwrong url
16:34RaynesIt's like unfair because ohpauleez has his and I don't have mine.
16:34ohpauleezhttps://leapmotion.com/
16:35ohpauleezIt's a total blast, but no one has taken the path that I've taken
16:35ohpauleezwhich is to extend the API with better predicates and ways to compose it together
16:35filipncsThere are no math functions in clojure itself from 1.4, right? I need to pull in clojure.math.numeric-tower as an external dependency?
16:35weavejesterPerhaps I'll call the library databstract
16:35ohpauleezand what naturally fell out was: smaller code size, and gestures
16:35ibdknoxhaha
16:35ohpauleezwhich seems so obvious to me haha
16:36Raynesohpauleez: I just want to point at shit.
16:36ibdknoxthe clojure way = wrap APIs in composable data/fns :p
16:36ibdknoxso they suck less.
16:36ohpauleezexactly
16:37ohpauleezliterally my first weekend was a lot of, "Well this should just be a map - this should just take kw args, this needs a default. Really… this is a protocol"
16:37ohpauleezAnd now what takes people a mountain of bad C++ takes me 18 lines: https://github.com/ohpauleez/clojure-leap/blob/master/src/clojure_leap/example/higher_hand.clj
16:38ibdknoxare you working with them to refine the API?
16:38ohpauleezyeah
16:38ohpauleezI just got a message offline, because I jumped in on gestures before they announced them
16:38ohpauleezso the next SDK should include some of them out of the box
16:39ibdknoxah
16:39ohpauleezalso, because of JNI, casting up has TERRIBLE consequences (like loosing .equals and .hashCode functionality)
16:39ohpauleezso I have hacks in place around that
16:39ibdknoxit's not clear to me what I'd do with one of these
16:39ibdknoxbarring some sort of 3d projection
16:39ohpauleezRemember when you only had a mouse? You were limited to single-point two dimensions
16:40ohpauleezthen multi-touch touchpads came along
16:40ohpauleezand you were like, right this makes sense
16:40ibdknoxhands held out in front of you in air are incredibly inaccurate
16:40ohpauleezI naturally want to interact and grow my "vocabulary" - I want more expression
16:40ohpauleezand now we're just adding a third dimension
16:40Raynesibdknox: I want to use it as a pointing device because I'm a masochist.
16:41ohpauleezibdknox: it's INSANELY accurate
16:41ibdknoxthat's not what I'm commenting on :)
16:41ibdknox*we* are inaccurate
16:41ohpauleezMy experience has been different - but it also takes a little but of "living in the future"
16:42ohpauleezall of the obvious things are mostly bad ideas
16:42technomancyright, like a big problem with touch screens is that fingers are just beefy compared to mouse pointers.
16:42ibdknoxyeah, that's why I said I have a hard time seeing what I'd use it for :)
16:42ohpauleezthe exception - I can pinch windows from one monitor and move them in front of me very fast
16:42ohpauleezala Minority report
16:42ibdknoxhaha
16:42ohpauleezhaha
16:43ohpauleezgaming has been kind of fun with it
16:43ibdknoxwhat kind of games?
16:43ohpauleezKilling Floor
16:43RaynesI'm prepared to play Doom 3 with it.
16:43ohpauleezand I watched someone's flight sim
16:43RaynesSo I can slap myself in the face trying to turn around and run screaming.
16:44ibdknoxRaynes: I ordered the oculus which comes with doom 3 whenever the KS ships
16:44RaynesOh God.
16:44ibdknoxI was curious if there's something neat I could do in LT with it
16:44ohpauleezRaynes: The novelty might wear off - the trick is to think about what you do with your body when you play
16:44ohpauleezthe Leap can pick up your head and nose
16:44RaynesI've barely tolerated that game on a television. I'll explode into horrified bits if I played that thing with goggles.
16:44ohpauleezso you can map "crouching" t something
16:45ohpauleezit also is a little *too* sensitive sometimes - it'll pick up the cord to the earbuds and stuff
16:45ohpauleezthe beer bottle
16:45ohpauleezetc
16:45ohpauleez… back to protocols :)
16:46RaynesIf it sees me holding a beer bottle will it report me to the authorities?
16:46ibdknoxRaynes: he's adding it to the API right now.
16:46RaynesDamn.
16:46ohpauleez(defprotocol IllegalDrinking ...)
16:46RaynesI'm going to miss all of these jokes in two years.
16:47ohpauleezI didn't commit it, but I had a gesture called: those-sons-of-bitches-are-going-down
16:47ohpauleezwhich is a very accurate gesture to capture
16:47ohpauleezWe are too Raynes
16:50bawrseems like you need an approved developer account to see the Leap API, that sucks
16:51technomancyI get the feeling mobile input is where there's tons of low-hanging fruit
16:51gfredericksI'm going crazy; under what circumstances could I have (and (= x y) (not= (set x) (set y)))?
16:51technomancythe idea that you are expected to enter text by tapping tiny buttons with your thumb on a qwerty keyboard is absurd
16:52ibdknoxdefinitely and obvious and well known problem, it's hard to imagine the solution though
16:52RaynesYou should fix all of these things that are wrong with the universe.
16:52amalloytechnomancy: android's swype is already a lot faster than actual thumb-tapping, even for untrained users
16:53technomancyamalloy: still uses only two thumbs though
16:53ibdknoxtechnomancy: are you thinking something that is faster than typing or on par with typing?
16:53technomancyI suspect you could get tons of mileage out of a chording keyboard
16:53ibdknoxchording keyboard?
16:53Raynesamalloy: I miss swipe on the iphone.
16:53amalloyi suspect it's too hard to hold the phone and also chord well
16:53Raynesswype*
16:53amalloyRaynes: unlock your phone and install whatever the iphone alternative is
16:53bawribdknox: press all the letters in a word at once, see it appear. I... think.
16:53technomancyibdknox: something like this: http://www.loper-os.org/?p=861
16:53RaynesProbably the only thing I miss about android.
16:54technomancyI mean, I think it would be *possible* to make something approaching a real keyboard for mobile input. I don't necessarily think it would be possible to successfully mass-produce it.
16:54technomancybecause people hate giving up familiarity for efficiency
16:55amalloytechnomancy: stenotype for mobile?
16:55technomancyamalloy: you can't reasonably use a software keyboard one-handedly anyway though
16:55amalloyi do it all the time
16:55ohpauleezbawr: Just look at clojure-leap
16:55ohpauleezthe bare API is there too
16:55ohpauleezand some docs shhhhh
16:56ibdknoxI feel like an idiot anytime I try to type on a phone
16:57bawrohpauleez: actually... I did, I got so interested I forgot to thank you xD
16:57amalloyanyway it sounds like all the things you're asking for in a mobile keyboard are basically a stenotype machine, technomancy. i bet someone's written a touchscreen emulator for stenotypes
16:57Hodappstill lacks tactile feedback >_<
16:57technomancyyeah, tactile feedback and a way to see the screen while you're typing
16:58technomancyyou'd need an external device to do it properly
16:58amalloyHodapp: http://www.techradar.com/us/news/phone-and-communications/mobile-phones/mobile-computing/laptops/tactus-demonstrates-physical-button-technology-for-touchscreens-1084285 ?
16:58technomancywith a touchscreen there's always going to be tension between using more of the screen for better accuracy vs using less of the screen for more useful editing
16:59rboydthe solution is obviously an input device that takes advantage of the musculature of the human tongue
16:59Hodapp'Tactus is hoping we'll be able to get our hands on devices using its screen technology by the middle of 2013...'
16:59Hodappwhich means we won't see it. Ever.
16:59rboydlick the touchscreen
16:59technomancyI could imagine something you just leave in your pocket and operate with the hand that isn't holding the mobile
16:59bawrrboyd: touching the lickscreen would be more fun
17:00rboydlickscreen.io (YC S13)
17:00technomancyrboyd: unfortunately foot pedals are really only feasible while sitting
17:00brainproxyrecommendation/s on how to make the font look better when running Emacs 24 on Windows?
17:01hiredmanget a mac with a retina display
17:01amalloybrainproxy: presumably, a better definition of "look better" would be step one
17:01brainproxylooks all skinny and hard/er to read than what I'm used to looking at when running Emacs on my mac
17:01rboydbrainproxy: try a new font?
17:02bawrohpauleez: so, did you have to show them something insaney cool to get to play with pre-release hardware? :)
17:03brehautbrainproxy: cocoas' font rendering tends to produce fatter forms than windows due to its hinting and antialiasing algorithms.
17:03ohpauleezbawr: No, I just told them my project and I guess it was audacious enough
17:03ohpauleezhaha
17:03brehautbrainproxy: you either need a new font or just get used to it
17:03bawrohpauleez: heh, that's even better ^^
17:03brainproxyrboyd: was hunting around for how to do that, just figured I would give out a shout in chan, see if there's any collective wisdom on the subject
17:05technomancy"looks all skinny" in probably too much hinting?
17:06rboydbrainproxy: custom-set-faces and a monospaced font
17:06brehauttechnomancy: probably; windows, especially cleartype(? — whatever the XP to vista renderer is), is super aggressive at hinting
17:07brehautthe new Windows 7ish era render does a fantastic job though
17:09brehautearly versions of safari for windows actually ported the cocoa renderer, and everyone complained that it was super blurry (even mac fans who liked that same rendering on a mac)
17:09weavejesterOh yeah, I remember that.
17:09brehautshort version: design stuff is always relative
17:11gfredericksso I have a {:foo 42} and a {:foo (Integer. 42)}
17:11tomojhmm.. (:as (as-> x {:keys [foo bar] :as x} ...))
17:12gfredericksthey compare equal with =, but when I put them both in a set they are no longer equal
17:12gfredericksalso I have trouble reproducing this.
17:12bawrI never had a problem with pixellated fonts, really. Maybe it's just me.
17:14hiredmangfredericks: what clojure version?
17:14gfrederickshiredman: 1.5.0-RC1
17:14hiredman:/
17:14gfredericksI've only seen this on my coworker's computer
17:14gfredericksstill trying to reproduce on mine
17:15hiredmangfredericks: that means that sets are using .equals or .hashCode somewhere instead of using clojures hash and equiv
17:16hiredmanbecause 42 is a Long and (Integer. 42) is an Integer and java may or may not do something dumb there
17:16amalloyhiredman: it does
17:16hiredman(of course)
17:16ibdknoxstatic typing FTW!
17:17gfredericksstill can't reproduce which is the weirdest part; I guess I should check his jvm version?
17:17gfredericksoh I bet he's on java7 and I'm on 6
17:18hiredmangfredericks: I would double check the classpath of his clojure to see if he really is on whatever version
17:18technomancyequality is hard
17:18technomancythough you have to screw it up pretty spectacularly to get it wrong for value types =\
17:18gfredericksnope still can't repro on java7
17:18gfrederickshe's also on a mac
17:19hiredmanthe problem with numbers is there is a existing well established domain with expectations of how they should behave, which does not match how they behave on computers at all
17:20hiredmanwhich is due to things like width of presentation, floating point, and other performance trade offs
17:20hiredmanwidth of representation
17:21amalloygfredericks: none of that will matter across JVMs. it's entirely a clojure problem
17:21gfredericksamalloy: yeah? a known bug?
17:21amalloynot in 1.5 as far as i know
17:21amalloyi'm just saying, there's no way it matters what jvm or os he's on
17:21amalloyonly what clojure version
17:23amalloyif he were using, say, 1.3, it would be a known bug
17:31gfredericksoh got it!
17:31gfredericks,(= #{-80042} #{(Integer. -80042)})
17:31clojurebotfalse
17:32gfredericks,(= -80042 (Integer. -80042))
17:32clojurebottrue
17:32gfredericksthat just took up ~10 man-hours
17:33gfredericks,*clojure-version*
17:33clojurebot{:interim true, :major 1, :minor 4, :incremental 0, :qualifier "master"}
17:33gfredericks,(= #{42} #{(Integer. 42)})
17:33clojurebottrue
17:34gfredericksamalloy: ^ that's why I had trouble reproducing. works fine for 42.
17:34ibdknox,(= #{-1} #{(Integer. -1)})
17:34clojurebotfalse
17:34ibdknoxheh
17:34ibdknoxthat's awful
17:34amalloycaching of the first 128 integers?
17:35hiredman:/
17:35ibdknox,(= #{12345} #{(Integer. 12345)})
17:35clojurebottrue
17:35gfredericks,(map #(= #{%} #{(Integer. %)}) [127 128 129])
17:35clojurebot(true true true)
17:35hiredmanphashset just calls equals
17:35technomancyI thought that only happened in runtimes with fixnums
17:35amalloyor...just an erroneous = comparison in clojure for negative integer objects. great
17:36amalloytechnomancy: no, the first N integers, for some small N, are interned (although you can still avoid the intern pool by using Integer. instead of Integer/valueOf)
17:36gfredericks,(= -80042 (Integer/valueOf -80042))
17:36clojurebottrue
17:36technomancyamalloy: similar to fixnums in practice then?
17:36amalloy*shrug*
17:36amalloyi don't know a lot about the details of fixnums
17:37technomancyI guess it's not like there's a canonical implementation of them
17:37gfredericks,(= #{-80042} #{(Integer/valueOf -80042)})
17:37clojurebotfalse
17:38gfredericksshall I make a jira ticket?
17:38hiredmanit is due to sets being built on maps, and the sketchiness of using numbers as map keys
17:38hiredmanyes
17:38technomancyhttps://blogs.oracle.com/jrose/entry/fixnums_in_the_vm
17:38amalloygfredericks: IMO you should fly to rhickey's house and knock on his bedroom window; this bug is disastrous
17:38pjstadigtechnomancy: old news
17:38technomancypjstadig: I prefer to think of it as "classic"
17:38pjstadigi read that blog post before it was cool
17:39amalloyi have a keylogger on jrose's computer and read it as he was writing it. competition over?
17:39pjstadiggfredericks: whoa what?
17:39pjstadigi thought i already opened a ticket for that one
17:39Dark_Templehelloo guys :)
17:40gfrederickspjstadig: for set equality problems?
17:40pjstadigyeah
17:40gfrederickspjstadig: I only just found out about this 10 minutes ago
17:40pjstadigor at least i independently discovered it
17:40Dark_Templegfredericks i finished my first program,it converts a boolean formula to cnf form(if you know what that is),you helped me :)
17:41pjstadigbut we discovered it a month or two ago, and i thought we determined that our case was an edge case, so maybe its different than yours
17:41gfredericksDark_Temple: sweet
17:41amalloypjstadig: link to jira ticket?
17:41gfrederickspjstadig: we're using sets to compare unordered sets of data
17:41pjstadigamalloy: trying to find it, but i may not have created it
17:42technomancymonkeypatch your JVM to automatically convert all Integers to Longs upon creation
17:42gfredericksin this case the integers were coming from jdbc
17:42pjstadigyes
17:42pjstadigours was a jdbc issue too
17:43pjstadigi don't think we created a ticket for it
17:43gfredericksin our case the Integer was being created by jdbc so http://dev.clojure.org/jira/browse/JDBC-46 made it an easy fix
17:43hiredmanpjstadig: I think for some reason we decided it was a jdbc issue? at least if we are thinking of the same thing
17:45pjstadigi remember we were spelunking through the java code and i saw this https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/APersistentSet.java#L77
17:45pjstadigand it seemed not right
17:47pjstadigPHS doesn't override that definition of equiv
17:49gfrederickswould this be good enough to slip into 1.5 final release?
17:49TimMcIt's pretty egregious.
17:50technomancythat's what release candidates are for
17:50gfrederickswell it was a bug in 1.4 too :P
17:50technomancysorry, that was meant to be "that's what you're supposed to use release candidates for"
17:51technomancynot necessarily how they're used in practice =\
18:00gfrederickswhy would this only break for negative numbers?
18:00gfrederickseven large positives seem okay
18:01hiredmanlongs and ints only hash differently for negative numbers, I think
18:01gfredericksJira: major, critical, or blocker?
18:01hiredman,(.hashCode (Long. -10))
18:01clojurebot9
18:01hiredman,(.hashCode (Integer. -10))
18:01clojurebot-10
18:01hiredman,(.hashCode (Integer. 10))
18:01clojurebot10
18:01hiredman,(.hashCode (Long. 10))
18:01clojurebot10
18:01hiredmanwonderful
18:06TimMcgfredericks: Major, I'd say.
18:06gfredericksk
18:06TimMcOf course, it would be critical to *someone's* app or lib, I'm sure.
18:07TimMcAnd then poke some folks in Core.
18:07gfredericksI wish "just cost me ten man-hours" were a priority level
18:07gfredericksabedra told me he'd phone up rhickey tomorrow :)
18:08dyreshark,(let [[a b] [1]] (println b))
18:08clojurebotnil\n
18:08dyresharkis there any way to tell the difference between nil-in-the-list and not-enough-elements in the above case ^
18:09dyresharkother than :as some-lst (if (count some-lst ...
18:09technomancydyreshark: destructuring doesn't have that ability, but multi-arity functions and pattern matching do
18:10dyresharkalright, i'll look into those then. thanks
18:10TimMcgfredericks: http://dev.clojure.org/jira/browse/CLJ-1106 is similar.
18:12gfredericksTimMc: k thanks
18:16gfrederickstrying my failing test with his patch
18:17gfrederickscan I bump that issue's priority?
18:23TimMcSure, why not? :-P
18:29seangroveohpauleez: Just met Aaron out here, didn't realize you guys were using shoreleave over there
18:29seangroveThought it was primarily a python shop
18:38seangroveWhat's the python/clojure split?
18:43DigitalJackThe Python Clojure Split (PCS) refers to a brief time period when Guido Van Rossum was writing yet another list processing language, and was struck by inspiration when he noticed that all the parenthesis resembled a python constricting around its prey. Thus his development efforts split off and the Python language was born.
18:50yedican someone link me to a primer on protocols, records, and types in clojure? (to complement the docs)
18:53technomancyI wonder what ruby would look like without implicit "begin" everywhere
18:53SegFaultAXtechnomancy: My guess is it would have an explicit begin everywhere.
18:53technomancyif it was made explicit and people used a more functional style you could get rid of end end end everywhere but not have it be whitespace-dependent
18:54dnolenyedi: the books probably cover them better, not much on the web.
18:56technomancySegFaultAX: I could imagine a parallel universe in which forcing an explicit begin (like explicit do in clojure) could encourage a more functional expression-oriented style
19:00TimMcOh hey, once Clojure gets column metadata, we can have "^--- problem here"-style compiler messages.
19:01cgag technomancy: how would that encourage a more functional style? how does the implicit begin discourage it?
19:03craigbroawoooo
19:03technomancycgag: `do` in clojure is only necessary when side-effects are present
19:07cgagah yeah, i see what you mean now
19:09technomancyTimMc: really looking forward to http://pointerpointer.com integration
19:11tmcivertechnomancy: ha! where do you find this crap?!
19:11technomancytmciver: somewhere on the tweeternets
19:11dnolentechnomancy: wow that is hilarious
19:12technomancydnolen: makes you wonder if the API or data set is open to other use
19:13cgagsomeone did a little video explaining how it works if you're interested: https://www.youtube.com/watch?v=Z2ZXW2HBLPM
19:13tmcivertop-left corner is funny.
19:14technomancycgag: coo
19:14technomancyl
19:16amalloyhuh, the pointerpointer pictures are different from last time i looked
19:16technomancyoh, heh; it's not even an API, just a static json file
19:16dnolentechnomancy: it's all clientside JS
19:16dnolenor at least seems so from the video
19:17technomancyeven better for implementing clojure-error-pointer.el =)
19:23TimMctechnomancy: I would pay so much money for that.
19:24TimMc(let [so-much 1, money :BTC] ...)
19:24craigbroI am still very confused about all the error message complaints
19:25craigbroI may be aclimated to such failings tho
19:26TimMccraigbro: (defn foo (vector 1 2 3))
19:26TimMc"Parameter declaration vector should be a vector" (courtesy of amalloy)
19:27craigbrosensible to me
19:27craigbrothat's a list
19:27dnolencraigbro: the only time I really find them annoying is compile time errors. these errors often don't give location.
19:27amalloyyes, i actually chose a pretty poor example of confusing error message
19:27amalloytry (defn foo (set 1 2 3))
19:28dnolencraigbro: I don't think you'll get a good line number for that in CLJ.
19:28craigbrothe ones that bug me are null exceptions that just kill everything
19:28dnolencraigbro: those are bad too, but I find it rare that I don't have an accurate stack trace in those cases.
19:29hiredmanyou can get NPE's where printing the stacktrace causes an NPE
19:29amalloythose make me so sad, hiredman
19:29hiredmanthey are tricky
19:29craigbrook, got it now
19:30craigbrojust wrote those to a file, tried to load the file, got error but no indication where
19:30craigbrohiredman: that explanation fits my experience
19:34Sgeojuxt is like a J verb train with the concat operator between every given function
19:35TimMcSgeo: Well, that concludes it -- you're definitely a Markov chain bot of some sort. :-P
19:36amalloyhahaha
19:36Sgeo (<:,>:) 5
19:36Sgeo4 6
19:36SgeoWhy is 5 my favorite example number?
19:53TimMcHmm, good way to do weighted random choice?
19:58gfredericksTimMc: "good"?
19:59TimMcEfficient?
19:59clojurebotmake a note of http://scienceblogs.com/goodmath/2006/11/the_c_is_efficient_language_fa.php it is yet another article about picking c or c++ for performance being naive
19:59gfredericksTimMc: as in sub-linear in the number of elements?
19:59TimMcCorrect?
20:00TimMcIs sub-linear an option here?
20:00gfredericksyes
20:00TimMcwowzers
20:01gfredericksmake a tree where each node knows its total weight
20:01TimMcAh, I see.
20:01gfredericksthen .... do the obvious thing.
20:02TimMcI'm going to be doing this a bunch of times with new data every time, so the setup cost doesn't get amortized away.
20:03gfredericksoh right
20:03gfrederickswell the easy way if you know the total
20:04gfredericksis pick (rand total) and pull things off the front subtracting their weight from your number till something is bigger than it
20:05TimMcI *think* I can arrange things so that I know the total.
20:08gfredericksif you don't know the total I think it's fundamentally impossible
20:08TimMc*ahead of time
20:11fakedrakehello
20:12ChongLihi
20:12fakedrakeI was hoping someone could help me a bit with this
20:12ChongLisure
20:12fakedrakeI was going through the source of friend
20:12fakedrakehttps://github.com/cemerick/friend/blob/master/src/cemerick/friend/workflows.clj#L80
20:12SegFaultAXfakedrake: Not until you tell us what you did with the real Drake.
20:13fakedrake(buried in the basement)
20:13SegFaultAXfakedrake: No, Drake... whyyyyy. Ok, I'm done. Proceed.
20:13fakedrakeand i can't seem to get why cemerick calls this
20:13fakedrakemake-auth
20:14fakedrakeso basically the question is this: does it do something i do not get?
20:15fakedrakemake-auth is defined aboce
20:15fakedrakeabove*
20:15SegFaultAXIt returns a new auth object with the appropriate metadata set.
20:15fakedrakeyes but it is not returned by the fn returned by the interactive form
20:16fakedrakeit is just lost
20:16fakedrakeaaah
20:16cgagit's in an if
20:16fakedrakenow I get it
20:16fakedrakeyes
20:16fakedrakesorry
20:16fakedrake\me feels quite stupid
20:16SegFaultAXfakedrake: &(and nil false 1)
20:17SegFaultAX&(and nil false 1)
20:17lazybot⇒ nil
20:17TimMcSegFaultAX: You'll want ## for inline eval.
20:17SegFaultAXTimMc: Thanks
20:17SegFaultAXTimMc: Thanks
20:17cgagi'm pretty sure i thought the same thing when i first read through that source
20:17SegFaultAX&(or nil false 1)
20:17lazybot⇒ 1
20:18SegFaultAX&(and 1 2 3)
20:18lazybot⇒ 3
20:18SegFaultAXfakedrake: Does that help?
20:18cgagI don't remember for sure, but I dont' think you have to have that metadata if you don't want it, i think you just need to have :identity
20:20fakedrakeyeah, thank you guys
20:28TimMc&(counted? (seq [1 2 3]))
20:28lazybot⇒ false
20:38TimMcRaynes: Hey, when did flatland/useful grow a new namespace segment?
20:43TimMcI thought it was just useful/foo.clj, not flatland/useful/foo.clj.
20:44fakedrakeI would like to insepct a request object in a repl is it possible?
20:44fakedrakerather what is the best way to do something like that?
20:45hiredmanfakedrake: I often just slap in a middleware to print out request maps, but you can do anything like sticking them in a queue or just sticking them in a var
20:48fakedrakeaha
20:48fakedrakei did not realize I could print those
20:48hiredmanthey are just maps
20:49fakedrakeyeah... I meant the maps...
20:49fakedrake:S
20:50cgagi've just used pr-str on them and then pasted them back into the repl
20:51dnolen(run* [x y z :as q] ...) now supported in core.logic master
20:51gfredericksdnolen: woah nice
20:51dnolenwill probably look into supporting maps at some point as well ...
20:54dnolenI forsee a lot of core.logic Clojure-fication / de-Scheme-ification for 2013
20:54gfredericksdnolen: w00h my name is still in the git blame :P
20:54dnolenheh
20:54gfredericksdown to 2 lines from 5
20:56dnolengfredericks: yeah, needed to move that unification up - otherwise unexpected stuff happens.
20:57dnolenslowness mostly
20:57gfredericksoh interesting; I wondered if there were tradeoffs there
21:29RaynesTimMc: Recently.
21:29RaynesTimMc: All of my projects are slowly growing me.raynes prefixes.
21:32cgagis there an easy way to restart nrepl in emacs?
21:33RaynesI just close the *nrepl-server* buffer and then jack in again.
21:35xumingmingvcgag: there is a command: nrepl-restart
21:35xumingmingvusually just (use 'your-namespace :reload-all) is enough?
21:35Rayneswat
21:35RaynesI didn't know there was an nrepl-restart.
21:36fakedrakeis it bad practice to change an object's metadata?
21:36RaynesI wish there was a way to run nrepl in multiple projects at once.
21:36cgagit's not mentioned in the readme
21:36Raynesfakedrake: That's a strange question. If you have a reason to do it, sure.
21:37TimMcRaynes: Good on you.
21:37xumingmingvcgag: maybe just not all commands are mentioned in readme
21:39fakedrakeRaynes: hmm, I want to gather errors from arbitrary places (like authentication or form validation or whatever) and attach them all to the ring request somehow
21:39cgagyeah i wasn't trying to say I didn't believe you or anything, just noting it
21:40xumingmingvcgag: ;) understand
21:41fakedrakei plan on using bootstap's alerts to rendering them but i do not want hiccup everywhere in my project
21:41fakedrake(now that I think of it even if i did i would still need to get those errors to the renderer)
21:42cgagi just pass errors as an optional param to my templates
21:42cgagi use hiccup though, it's great
21:43fakedrakeyes i use hiccup too
21:43fakedrakehmm
21:47cldwalkerhi all, anyone know how to install a lein2 dependency so that it overrides the built-in one? I'm trying to use a locally modified version of lein-newnew to no avail
21:49cgagi second that question
21:50cldwalker@Raynes: any thoughts? ^^ I tried modifying profiles.clj as suggested in the readme to no avail
21:51RaynesNo clue. technomancy moved lein-newnew into Leiningen itself right before 2.0.0.
21:51RaynesI'm not sure how overriding it would work anymore.
21:51technomancyRaynes: hugod has a pull request supporting multiple nrepl connections in one emacs instance
21:51technomancyyou should try it and give feedback on it
21:51technomancykingtim needs help; there are like 12 open pull requests on nrepl.el
21:52cgagI just wasn't sure how to install a local version of a plugin. I tried removing the old one from .m2 and running lein install but it didn't seem to work
21:52RaynesI can give feedback on whether or not it works, but I don't really know any elisp.
21:52technomancycldwalker: you would have to do that with a dev checkout of lein2 I think because otherwise everything lein ships with is on the bootclasspath and takes precedence always
21:52RaynesThis is also a tough week. Moving cross country on Sunday.
21:52technomancyRaynes: yeah, that's what I was thinking
21:52technomancyjust a y/n
21:52RaynesBut I'm highly interested, so I'll take a look asap. Tomorrow probably. I wants it.
21:53technomancyhttps://github.com/kingtim/nrepl.el/pulls
21:53cgagwhere you heading to raynes?
21:53RaynesLos Angeles.
21:53technomancyoh man, I should test out #60
21:53technomancyI didn't realize there was a pull for that. been wanting that forever.
21:54brehautcgag: he's giving up software and is going to wait tables while he waits for his big break in film
21:54technomancymight be helpful to get more eyes on the list of nrepl.el pull requests
21:54cgaggood decision
21:59sgarrett|afkSo I was going to use Datomic for a new project of mine but from my understanding Datomic Free doesn't allow storage to any SQL or DynamoDB storage. :(
22:06cldwalkertechnomancy: ok, thanks
22:07technomancycldwalker: one of the unfortunate drawbacks of bootclasspath, which really boosts boot time significantly
22:15TimMcHaha, I just pointed my Dissociated Press program at a README and the first line said "implemented by copying". :-D
22:18xumingmingvhaha
22:47TimMc"break it does, forgot muggling to mvcc"
22:47TimMcAlso, "SQLiterately" and "pointerprisey".
22:50callenRaynes: good luck with the move!
22:50Raynescallen: Thanks.
22:52TimMcRaynes: I'll try not to break lazybot while you're travelling.
22:53callenRaynes: I've done multiple big moves before, ping me if you need advice. You're moving to LA right?
22:54callenoh, *sees scroll* yes you are.
22:58amalloylazybot is already safely in california
23:00amalloyin fremont, i guess
23:01RaynesTimMc: You'll have an 8 hour window to get yourself set up for a good ass kicking.
23:01TimMcheh
23:01Raynesamalloy: We never moved?
23:01RaynesWe were thinking about it once.
23:01amalloywe were, but we didn't
23:01RaynesThen bravo on them fixing their shit.
23:01RaynesNothing bad has happened in ages.
23:04cemericksgarrett|afk: local H2-based storage is your option on free (technically SQL, but probably not what you're talking about)
23:07sgarrettcemerick: I think I'm going to go with PostgreSQL instead…I was hoping there wouldn't be a lot of restriction on the free Datomic but oh well. It was going to be more of an experiment using it anyway.
23:08brehauthuh, alex miller has an FP conference in aus later this year
23:10sgarrettcemerick: I appreciate the reply though. :)
23:11cemerick:-)
23:32technomancygood news: nrepl 0.1.6 is out. bad news: the patches targeted for it didn't get applied =\
23:39TimMcI have two implementations of a fn that perform differently for different inputs. (Finding small substring matches in a large input string, either by indexOf or re-seq.)
23:40TimMccriterium gives me speed ratios of 0.5 to 5.
23:41TimMcIs there a way to switch off between implementations on the fly based on performance?