Re: using "lein repl" as the Emacs Inferior Lisp REPL as opposed to a custom script that does "java -jar clojure-1.4.0.jar"

2012-08-26 Thread blais
Hi mperdikas. I also like to have full control over my dependencies and versions, so I wrote a script that - you give it a bunch of directories, and it automatically finds all the jars in them an resolves conflicts by selecting latest versions automatically - prints the list of jars (explicitly

slime-auto-connect for clojure-mode in Emacs

2012-06-23 Thread blais
Hello Clojuriasts, This one is for the few aficionados of Emacs and the SLIME. I once got really tired of typing "M-x slime-connect RET RET ... etc." everytime I needed to bounce my VM in order to reconnect my Emacs to it. This happened often enough to me, because like Stuart (S) in a previous em

Do you leave a Swank / nREPL in your production servers?

2012-05-24 Thread blais
Hi, Just curious... Is it common for people deploying Clojure servers in a production environment to leave a swank or nrepl server running for making live bug fixes? Do you guys do this? Would you advise against it? Thanks, -- You received this message because you are subscribed to the Google

Re: Faster application startup for rapid development

2012-05-14 Thread blais
On Friday, May 11, 2012 5:33:22 PM UTC-4, Stuart Sierra wrote: > > > > What other tricks do you have for speeding up your development cycle with > Clojure? > > I have a similar situation, where I've had to restart a repl a *lot* for a particular program (several times a day, like 10-20 times and

Re: (update-in) and getting the new value at the leaf efficiently

2012-04-26 Thread blais
On Thursday, April 26, 2012 4:59:31 PM UTC-4, David Nolen wrote: > > On Thu, Apr 26, 2012 at 4:52 PM, blais wrote: > >> I suppose I could elect to move refs for modifiable things towards the >> leaves, but that seems to me like going against the grain and may have

Re: (update-in) and getting the new value at the leaf efficiently

2012-04-26 Thread blais
On Thursday, April 26, 2012 4:36:52 PM UTC-4, David Nolen wrote: > > On Thu, Apr 26, 2012 at 4:30 PM, blais wrote: > >> (Generally I find I get too little "cultural osmosis" when it comes to >> practical application of Clojure, so questions like this one come up al

Re: (update-in) and getting the new value at the leaf efficiently

2012-04-26 Thread blais
Thanks Andy, Two comments: 1. Your version does not use a transient/mutable, which is great, but it does create one vector for each level. I thought that since this would be wrapped and hidden from external view, a mutable would have been more appropriate. More generally, I still don't know ye

(update-in) and getting the new value at the leaf efficiently

2012-04-26 Thread blais
Hi, I have this use-case for (update-in) which keeps showing up in my code which I don't have a solution for and I'm wondering if there isn't a solution. How do I _efficiently_ obtain the new value created by an invocation of (update-in), that is, without having to get the modified value by look

fnil should delay evaluation of its argument?

2012-04-24 Thread blais
Does anybody else feel that (fnil) should delay evaluation of its argument? Maybe I've been abusing mutability a bit too much, but for a map which refers to mutable object instances, I've found this useful: (defmacro fnil* "Delayed evaluation version of fnil, where the default expression gets

WebSockets with Clojure

2012-02-01 Thread blais
Hi Clojurians, Does anyone have experience with serving WebSockets from Clojure, in particular w.r.t. scalability? I'm evaluating server-side options for handling a large number of simultaneous web clients (>100) and wondering how well this scales. I already hooked up Clojure to Netty and built a

What is the idiomatic way to compare data structures with BigDecimal instances

2012-01-13 Thread blais
;; BigDecimal comparisons do not appear to work as I ;; would have expected them to: (= 2e+3M 2000M) ;; -> false ;; Looking at the definition of '=', I can see that ;; it defers to clojure.lang.Util/equiv, which ;; compares them as Object, by reference. Fine. ;; I thought I could use equals,

definterface vs. defprotocol type hints

2011-12-11 Thread blais
Hi, Why is it that defprotocol ignores type hints, while definterface deals with them? Both macros expand to a call to gen-interface--defprotocol just adds a bit more to that. I don't see why it wouldn't be possible. Is it just a historical artifact? -- You received this message because you are

Re: About a networked REPL...

2011-03-21 Thread Martin Blais
Aaaah now we're getting to the core of this discussion... To summarize everyone's points: - Several people consider the "transport" to be orthogonal/separte to the "tooling" or "IDE backend." a) By transport, it refers to a generic ability to transfer key-value pairs, with a 'id' key f

Re: About a networked REPL...

2011-03-20 Thread blais
On Mar 20, 10:48 pm, blais wrote: > really valuable, because it is unlikely to break between versions, and > it's already good enough for a lot of users via stdin/stdout pipes > (i.e., inferior lisp). Like being able to just telnet to a running VM and type "(+ 2 2)" and s

Re: About a networked REPL...

2011-03-20 Thread blais
On Mar 20, 12:16 pm, Chas Emerick wrote: > Martin, > > Thank you for the pushback.  :-) I'm not pushing back, I'm really just trying to understand... > On Mar 19, 2011, at 8:30 PM, Martin Blais wrote: > >  I think this is wrong, because every single IDE client >

About a networked REPL...

2011-03-19 Thread Martin Blais
Hi, After Rich's suggestion at the recent NYC meetup, I had a detailed look at inferior-lisp vs. Slime, and nREPL, read Chas' document, wrote a bit of code, tried to figure out the issues for myself; here are my conclusions on nREPL: - In the Slime/Swank model, there is a single IDE that conne

Re: slime-eval-at-register

2011-03-18 Thread blais
On Mar 17, 9:39 pm, Ken Wesson wrote: > On Thu, Mar 17, 2011 at 7:32 PM, Martin Blais wrote: > > Emacs-using Clojurians may enjoy the following tidbit of > > Slime I just dreamed of: > > > (defun slime-eval-at-register (reg) > >  "Take the cursor to a reg

slime-eval-at-register

2011-03-17 Thread Martin Blais
Emacs-using Clojurians may enjoy the following tidbit of Slime I just dreamed of: (defun slime-eval-at-register (reg) "Take the cursor to a register's location and eval the expression there. Useful for testing stuff without having to 'go there' first." (interactive "cEval at register:

Re: An Emacs command to close the various balanced expressions in Clojure

2010-09-29 Thread blais
It's too small to be an Emacs package, but I've forked it into its own file and a few improvements have been made to it. Here: http://furius.ca/pubcode/pub/conf/common/elisp/blais/close-matching.el ( It is linked from this page: http://furius.ca/pubcode/ ) On Sep 28, 6:03 pm, &q

Re: An Emacs command to close the various balanced expressions in Clojure

2010-09-28 Thread blais
The message below pretty much sums it up. My original problem with paredit and such is that it creates "modality", that is, the behaviour of insertion depends on the context. This variable behaviour, this "modality problem" is what Jef Raskin talks about in "The Humane Interface" (a truly enlighte

An Emacs command to close the various balanced expressions in Clojure

2010-09-26 Thread blais
Hi, Writing Clojure code tends to require a larger mix of "()", "[]" and "{}" characters than other LISPs I use. This sometimes makes it a bit tiring to write those balanced expressions. Writing balanced expressions has been addressed in editors mainly by providing the automated insertion of matc

Re: ctrim (with character)

2010-09-17 Thread blais
On Sep 17, 11:18 pm, Martin Blais wrote: > I'm still new here... what is the common procedure for > outsiders to contribute? Fork on github and send link to > branch? Like this? Let me know. Never mind this bit; I found the relevant info on the Clojure website. (Still interest

ctrim (with character)

2010-09-17 Thread Martin Blais
Hi, I'd like to suggest a version trim for clojure.string that can accept a specific character to be trimmed:: (defn ^String ctrim "Removes a character from the left side of string." [char ^CharSequence s] (let [slen (.length s) index-left (loop [index (int 0)]

ns-unmap-all

2010-09-12 Thread blais
Hi, The following function has been a real _lifesaver_ lately in debugging symbol collisions in (ns) directives when developing with SLIME in a long-running VM: (defn ns-unmap-all "Unmap all the symbols (except 'ns' and 'in-ns')." ([] (ns-unmap-all *ns*)) ([ns] (map #(ns-unmap ns %) (keys (n

Clojure used in Finance?

2009-05-06 Thread blais
Hi, I've been fiddling LISP for a long time, and was never that enthousiastic about "Java the language" despite the large number and breadth of its libraries (in my view the libraries are the best part about it, the language itself is rather limited). So I'm finding Clojure (and the idea of a JV