#clojure log - Feb 22 2014

The Joy of Clojure
Main Clojure site
Google Group
List of all logged dates

0:00 nido`: No, I'm on windows 7 for the most part, though I do have an install of ubuntu 12.04

0:00 TravisD: oh, never mind then. There is this irritating issue with GUI applications on Mac OS where they don't see the PATH updates in your login scripts

0:01 nido`: maybe I'll double check my path then, who knows

0:01 TravisD: did you use lein to install clojure?

0:01 nido`: yeah

0:02 TravisD: Hmm, sorry. I don't know very much about it

0:02 nido`: I only need the .lein in the path, right?

0:02 There's no cider-specific file that needs to be available?

0:04 TravisD: yeah, although I suspect the issue is not with cider, since "lein repl" doesn't work either

0:04 afaik cider relies on leiningen for cider-jack-in

0:06 dacc: anyone have a favorite property based testing lib?

0:07 nido`: travisd: thanks, I'll double check along those lines

0:17 dsrx: dacc: i've used simple-check a little bit, seems good enough

0:19 dacc: ok thanks

1:23 TravisD: Can anyone come up with a simpler implementation of this function? https://www.refheap.com/44486

1:24 Also, the doctoring is awful, sorry :)

1:25 docstring* my IRC client auto-replaces what it assumes are typos

1:26 Cr8: you on a phone or what

1:27 i had to like

1:27 TravisD: Nah, I use colloquy on MacOS. It's the only app I have that does it, and I can't figure out how to turn it off

1:27 Cr8: turn that off on OS X to get work done

1:27 TravisD: Ah, how do you turn it off?

1:27 Cr8: TravisD: prolly the OS X built in auto correct. Its in keyboard settings in system preferences.

1:28 TravisD: Cr8: Ah, that fixed it. You're a life saver :)

1:28 Cr8: https://www.evernote.com/shard/s17/res/d5b0a8df-b995-47d8-a3a0-e2f1e6072677/skitch.png?resizeSmall&width=676

1:28 ah

1:28 yeah

1:28 TravisD: Don't have access to view that link

1:28 Cr8: oh

1:28 just a screen of that section

1:28 https://www.evernote.com/shard/s17/sh/dc93870b-f5a9-432a-9beb-1f1569b030bf/431ea0ef6f3c3cadef1fb35a88d92971

1:29 TravisD: Haha, I like the annotations

1:29 Cr8: Skype has the same issue

1:29 TravisD: Ah, now that you mention it, I also noticed it there

1:29 Cr8: I took that screen when I had to turn it off because it kept "correcting" work-jargon on a war-room groupchat

1:29 TravisD: war-room?

1:30 Cr8: bad stuff happened so we're pulling in folks and making sure they are working on it til its fixed type issue

1:30 TravisD: ahh

1:30 that sounds so stressful

1:31 Cr8: it is. They're not as bad at my current employer, but I used to work at Walmart HQ

1:31 where there was typically a very high "dollars we are losing per minute this system is broken" figure

1:32 TravisD: hehe, also sounds a bit exciting. I guess as long as there wasn't risk of being fired

1:33 Cr8: Incidentally one of the things I used Clojure for really early was live-coding monitoring dashboards for war-rooms

1:34 TravisD: so, you used it to write some programs that would mintor other people's editors or something?

1:34 Cr8: had some junk-drawer stuff with clj-ssh and jfreechart and swing, and could chart or watch arbitrary metrics and toss them on the projector

1:34 TravisD: Anyone else being spammed by user linnuxx?

1:34 Cr8: monitor system stats on the problem machine usually

1:34 I am

1:35 TravisD: Is there something to do about that?

1:35 Cr8: hm

1:35 you can set your user mode +R and then only registered users can /msg you.

1:35 TravisD: Ah, added him to my ignore list.

1:35 Cr8: https://freenode.net/faq.shtml#spambots

1:36 TravisD: Cool, thanks

1:41 Cr8: w.r.t. original paste might look at how tree-seq works https://github.com/clojure/clojure/blob/master/src/clj/clojure/core.clj#L4535-L4550

1:41 could prolly augment that with the path

1:41 ah

1:41 but it gets -all- nodes, not just leaves

1:42 TravisD: ah, good idea to have a branch? function

1:43 Cr8: branch? is just there so that you can provide a children function that may not be safe to call at all nodes

1:43 TravisD: I was actually solving a very specific problem and noticed that it had this more general structure

1:43 yeah

1:44 Cr8: if your children function returns empty list on any node that doesn't have children, branch? can be (constantly true)

1:44 TravisD: That's a better interface than nested collections

1:44 Cr8: its nice because it works with lots of different representations

1:44 TravisD: yeah

1:45 Cr8: you can tree-seq over stuff from xml and html parsers, for example

1:45 TravisD: In the code I'm working on, I wanted to transform a "rectangular" string like "...\n...\n..." into a lazy seq of coordinates and characters

1:46 and to do that you can do something like (tree-paths (map seq (clojure.string/split str #"\w+")))

1:46 but it would be better to use some built-in functions instead of reinventing the wheel :)

1:47 Cr8: yeah, unfortunately i don't think anything like what you want is built-in

1:48 reminds me of Om's cursors, which are super neat

1:48 TravisD: I haven't heard of them, do you have a link?

1:48 Cr8: they're wrappers around clojure structures that "remember" their lookup path

1:49 https://github.com/swannodette/om/wiki/Conceptual-overview#wiki-cursors

1:50 explanation

1:50 ^

1:50 and implementation: https://github.com/swannodette/om/blob/master/src/om/core.cljs#L251-L442

1:51 TravisD: That sounds pretty neat

1:51 Cr8: basically you do something like (:foo (:bar app-state)) and you get the thing at that place in app-state, with metadata attached that knows it was fetched by going down that path, so anything rendered from that path can get auto-updated when it changes

1:52 TravisD: ah, that's actually really cool

1:54 I've only been using clojure for about a week, but I'm really enjoying it so far. Seems like there are lots of exciting things going on

1:55 Cr8: yeah it has a -lot- of breadth

1:55 xuser: good or bad breadth?

1:56 oh I read breath ;)

2:11 dacc: is there a function to test if something's a ref?

2:15 TravisD: dacc: Not sure if this helps: http://stackoverflow.com/questions/7293289/how-do-we-test-whether-something-is-a-reference

2:15 It's quite old

2:16 dacc: TravisD: thanks -- found a different way

2:16 TravisD: what is it, out of curiosity

2:18 dacc: polymorphic function takes either an instance of a java class or a ref

2:18 so just switched to testing for instances of the class instead

2:19 mostly to help with testing -- it's a gen-class situation =)

2:19 trying to pass in the :state ref directly from test code

2:19 TravisD: Ah, cool. I don't know about gen-class

2:21 dacc: hopefully you'll never need to =)

2:21 TravisD: hehe

2:24 bob2: TravisD, assoc

2:25 TravisD: bob2: in reference to what?

2:26 bob2: non-nested-update-in

2:26 TravisD: bob2: Ah, but assoc doesn't update with a function, it just replaces the value

2:37 amalloy: TravisD: one reason update doesn't exist is because it's not actually clear what the &args should do

2:37 you think it should add extra args like update-in does, but why shouldn't it update multiple keys like assoc does?

2:38 Moilkolaan: amalloy, do you still love me?

2:38 TravisD: amalloy: Ah, good point

2:38 amalloy: eg, (update m k1 f1 k2 f2)

2:38 TravisD: that is a good reason

2:44 frank_____: Test

4:43 borkdude: I just watched this lecture by Rich Hickey, The Language of the System

4:43 http://www.youtube.com/watch?v=ROor6_NGIWU

4:44 in it he recommends: build simple services instead of libraries

4:44 what are good (recent) examples of these services instead of libraries?

4:44 sm0ke: really?

4:45 i thought clojures philosophy is to have small libraries rather than big frameworks

4:51 rob3: when i think of a service i think of something like a HTTP web service

4:52 didn't check out the video yet

5:53 scape_: during system update, "debconf is not responding".. sigh

7:35 palango: A question regarding the friend auth lib: Is there a way to run a function after the authentification workflow is finished? I'd like to add some data to the session.

8:30 beyeran__: Has anyone experience with Leiningen and Cider on Mint Linux?

8:30 I'm using the same configuration on Windows (on which it works perfekty), but on Linux it freezes saying: "Connecting to nREPL..."

8:32 bob2: does 'lein repl' work in that project

8:32 jowag: I'm using mint but using nrepl instead of cider and all works fine

8:33 beyeran__: bob2: Yes it does

8:33 jowag: Is'nt nrepl a part of cider?

8:33 bob2: nrepl's afaict the old name for cider

8:34 jowag: cider is new incarnation of nrepl, but AFAIK is still in alpha

8:34 bob2: perhaps you're using apparmor or selinux or iptables or ...

8:34 (but tldr it works excellently on linux)

8:35 beyeran__: At first I try, if it works with nrepl

8:38 no, same with nrepl

8:40 bob2: I'm not so experienced with networking on linux, but by typing "prgrep iptables" or apparmor or selinux, it seems that none of these are running

8:40 sveri: hi, i setup a luminus project with http-kit, i can start the jetty with "lein run -dev" from command lein, is there a way to start that same server from the project repl?

8:40 beyeran__: bob2: It's a pretty fresh install of Mint, I don't know if something was set up automatically

8:41 jowag: Do you perhaps know, if Mint has something running in the background, what disturbes the connection to lein?

8:44 bob2: beyeran__, none of them are processes

8:46 beyeran__: bob2: I restarted emacs, used nrepl again and this time it responded: "Connection refused", does this add with your idea?

8:47 jowag: I'm using emacs too, but have no problems. Check if you are connecting to the same port as nrepl is listening on

8:47 bob2: I don't know what you're running

8:47 I'd suggest using cider-jack-in instead of wahtever you're doing

8:47 jowag: I have default mint's firewall turned off (by default)

8:49 zachmassia: Is there a recommended why of automating a ns reload on file change with Quil?

8:49 beyeran__: jowag: good to know!

8:49 zachmassia: s/why/way

8:49 beyeran__: bob2: cider-jack-in also freezes

8:51 hyPiRion: beyeran__: Okay, I have a suggestion. Do `lein repl :headless` in a shell window, and attempt to connect through it in emacs by doing `M-x cider`, and then put in host and port. Does that work?

8:51 (`M-x cider RET`)

8:52 jowag: my conf: emacs 24 (from mints packages), nrepl.el 0.2.0, nrepl 0.2.3, repl-y 0.3.0, clojure 1.6 snapshot, lein 2.3.4, java 1.7, server started with lein nrepl, from emacs M-x nrepl ...

8:56 beyeran__: hyPiRion: no, the same with that. (on cider and nrepl)

8:56 hyPiRion: gurr

8:59 beyeran__: jowag: lein 2.3.4? My version seems much older (lein --version = 1.7.1), perhaps that's the problem

9:00 hyPiRion: beyeran__: oh yeah, that's probably it

9:00 did you install it from the package manager in mint? If so, uninstall it and follow the instructions over at leiningen.org. It's very easy to set up leiningen manually

9:17 beyeran__: hyPiRion: Oh boy... that solved it... I feel embaressed

9:18 patrkris: tpope: hi. do you have (or know of somebody else that does) a minimal example showing the setup needed to get :Piggieback working in Vim? I'm getting a NullPointerException trying to get started.

9:21 hyPiRion: beyeran__: Don't worry, it's not that unusual that people use the package manager for leiningen and end up with that issue. It's more of a problem on our side, really, we should help linux packagers with the packaging of a 2.x version

9:21 (not specifically that issue, but some issue related to 1.x/2.x incompatibility)

Logging service provided by n01se.net