Looks very interesting, thank you for your work!
I wonder how this is going to improve latency in comparison to nginx +
http-kit for some real world test that is not using heavy DB operations.
On Mon, Jan 13, 2014 at 5:57 AM, Xfeep Zhang easyj...@163.com wrote:
So far I have found why
Hi Xfeep,
What are the good ways to handle some heavy Clojure calculations when using
nginx-clojure?
Under nginx model it's bad to block other incoming requests by holding a
working thread for too long, right?
So is it better to route complex job to http-kit? Or to use some kind of
queue? Or
I see, thanks.
On Tue, Jan 21, 2014 at 4:17 PM, Xfeep Zhang easyj...@163.com wrote:
On Tuesday, January 21, 2014 6:25:02 AM UTC+8, Sergey Didenko wrote:
Hi Xfeep,
What are the good ways to handle some heavy Clojure calculations when
using nginx-clojure?
Do you mean every request
Hi from a Clojure newbie!
I have read the april thread Clojure + Terracotta Update and it
looks pretty positive.
A few question for TIM users:
Is there newer version than
http://github.com/pjstadig/tim-clojure-1.0-snapshot ?
Are there still bugs?
Can it be called production ready?
Regards,
Thanks for your answer, Paul!
I'm certainly going to try this TIM.
Another question:
You say that it requires runtime replacement of some Clojure classes
but the lines that include modified *TC.java files are commented ( see
ClojureTerracottaConfigurator.java from tim-clojure-1.0-snapshot
).
Hi Paul,
the code from [1] does not work under the latest Terracotta (3.1.1)
with clojure-slim.jar's in the following combinations:
1) branch 1.0.x from [3]
2) branch 1.0.x from [3] + modified
ClojureTerracottaConfigurator.java (uncommented lines)
3) [2] svn revision 1335 + modified
Hi,
has anybody tried to make rlwrap lexer more Clojure friendly? Just
adding - to the word characters would be a big gain (to enjoy
auto-completion.)
I spent some time looking through rlwrap sources but has not find a
good place to do the changes.
Regards, Sergey.
--
You received this
Probably it can be done with Rlwrap filters, I have not tried it yet.
On Sat, Nov 21, 2009 at 2:30 PM, Sergey Didenko
sergey.dide...@gmail.com wrote:
Hi,
has anybody tried to make rlwrap lexer more Clojure friendly? Just
adding - to the word characters would be a big gain (to enjoy
auto
Hi Paul,
This time I tested it under Linux, following the instructions exactly
and it worked.
Though when I opened the second REPL it failed with a
NullPointerException. I repeated the step and had two REPLs with the
same vars.
For some reason it failed earlier on Windows, I will try to make it
So simple :) Thanks!
On Mon, Nov 23, 2009 at 4:47 PM, Chouser chou...@gmail.com wrote:
The shell script I use to start my Clojure REPLs includes this:
rlwrap --remember --complete-filenames \
--history-filename ~/.clojure/history \
--break-chars \\\'(){}[],^%$#@;:| \
java and its
Hi,
Andre, Danny's first approach is about syncing only on the root
object, so that every piece of data is behind one deref:
(def root (ref {:persons [ ... no other refs here... ]))
This approach is simpler to code but can lead to a lot of retried
transactions under heavy concurrent load, as I
BTW I'm also coding the simple persistence for Clojure data
structures. Though I took Prevayler approach (http://prevayler.org),
so I journal function calls that change my root object.
This approach is better than simple snapshotting when your data grows
big, so you can't do the snapshots very
Here are my results.
The transient version performs slightly better on windows 32bit client
JVM, and considerably better on linux 64bit server JVM (they are both
1.06.0_17)
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send
It creates journals in readable and executable form:
1.journal
(tr-fn 1 2) ;1
(tr-fn 10 20) ;2
(tr-fn-swap) ;3
(tr-inc) ;4
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts
Well, I'm not fluent with git yet. I'll create the github project, that can
not be hard.
In comparison with Prevayler, the persister does not block the reads,
because it relies on Clojure STM. However it blocks the writes as
Prevayler, because currently there is no way to reliably get/ generate
Here is the GitHub project:
http://github.com/SergeyDidenko/Simple-Persistence-for-Clojure
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated -
transactions are
replayed?
On Fri, Dec 4, 2009 at 6:40 AM, John Harrop jharrop...@gmail.com wrote:
On Thu, Dec 3, 2009 at 6:31 PM, Sergey Didenko
sergey.dide...@gmail.comwrote:
In comparison with Prevayler, the persister does not block the reads,
because it relies on Clojure STM. However
global transaction id
from Clojure STM if it's possible.
On Fri, Dec 4, 2009 at 2:16 PM, John Harrop jharrop...@gmail.com wrote:
On Fri, Dec 4, 2009 at 6:50 AM, Sergey Didenko
sergey.dide...@gmail.comwrote:
Without the global transaction counter another problem arises.
Suppose transaction B
That was for Windows and client JVM. On my Linux server JVM sometimes even
100 of (dosync (alter myref inc)) has the same nanoTimes. So it's rather
dangerous approach, unless your program follows the condition.
(dosync (alter myref inc)) takes much longer than timer granularity on my
Windows
Nice idea, Luc!
Useful details, Jon.
So I'm implementing (dosync (let [ tr-id (swap! tr-atom inc)]
(transaction-itself) and then loading transactions in their tr-id's order
in the next release.
Probably with some floating window of postponed transactions in order not
to load all the
:
(tr4) ;4
(tr2) ;2
So additional script is needed to backup inactive (closed) journal files
into a safe set of transactions.
What do you think? Is it worth to complicate things this way?
On Sat, Dec 5, 2009 at 9:12 PM, Sergey Didenko sergey.dide...@gmail.comwrote:
Nice idea, Luc!
Useful
I'm going to postpone the discussed above removing of locking - the write
bottleneck.
Because:
1. In-memory writes are very quick
2. there is no demand right now
3. it makes the backup workflow more complex
The next thing I'm going to add is snapshotting. However it is not a
priority for me
I suggest to make a call for popularizing Clojure also.
I feel lack of publicity and *quick explanations* with *simple examples* of
why Clojure is better than others.
May be we have a situation when everybody thinks that Clojure is so
excellent that everybody understands it. But though Clojure
Sounds interesting! Thanks.
Hope to look at it when I have more time in my hands.
On Thu, Dec 10, 2009 at 1:37 PM, Paul Stadig p...@stadig.name wrote:
There is a new repo at http://github.com/pjstadig/tim-clojure-1.0.0/
that has a 1.0 compatible version of the TIM. It should be simpler to
Not on the topic, but quite important - that yellow column on the left is a
usability killer, it makes text hard to read.
I had to manually change it in Firebug just to read the article.
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this
Hi,
For us as Clojure community it is easy to see how Clojure benefits
from being a Lisp. Homoiconity, extreme conciseness, esoteric look and
feel, etc.
However it is hard to see from the inside how Clojure as ecosystem
(probably) suffer from being a Lisp. Please don't throw rotten eggs at
me, I
The main point is to reach new market by providing parentheses-lite
Clojure syntax.
Of course real serious Clojurians will be using the current syntax :)
Parens actually don't complect, they have a very very clear meaning. They
organize functions and arguments. Let's take one line from your
Unfortunately I don't know Python good enough to answer this. The
point though is just to mimic Python a very tiny bit. Basically to
convert some of ( and ) to indentations.
Sois that the python equivalent to which of these?
filter(smaller(xs))
filter(smaller, xs)
filter(smaller(), xs())
My point is to introduce a second-class syntax to attract orthodox
users. Definitely not migrating.
The rules of transformation can be so simple that any useful library
written by Clojure Python style adopters could be translated to the
canonical style automatically with a few line program.
I
Nice to see so documented example!
A few remarks:
1) IMHO sandbar's approach to authorization is better that this ad-hoc one:
it places auth data just in the routes instead of controllers, see
https://github.com/brentonashworth/sandbar/wiki/Authentication-and-Authorization
2) It would be nice
Hi Phil,
Is it an intention or a bug that dev-dependencies are being copied into
lib/dev when :local-repo-classpath is true?
Regards, Sergey.
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to
IMHO new people only will benefit from installing lein. It's very simple in
basic usage.
It can be used both from command line and with IDE.
Though I prefer my own scripts for starting REPL with readline instead of
lein repl.
It can be used with Enclojure by running lein pom every time you
It seems we don't have a *centralized* wiki not just for the Clojure Core
developers, but for everybody in our community.
Application developers have to look for *broad* info all over different
resources. I have just tried Clojure 1.3 and realized I have to google a lot
to find answers.
-
Public relations -- Project status and activity. This area seems to
suggest the main Clojure page should be covered in tickers and feeds
of various kinds
I think the main site needs just a pane with a big noticeable header News,
that shows one-two latest important stories and updates one time
You know that from inside. A Clojure outsider can have a completely other
point of view.
He can choose between Python, server side Javascript, new C#, Go, Scala, F#,
Haskell, Erlang, haXe, Clojure.
Besides the languages itself, the outsider wants to evaluate libraries,
community, platforms,
IMHO, it's worth to add Clojure to your Sparks.
Mine:
https://profiles.google.com/109116565377929735698
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are
I wrote on Google+, but I feel it can left unnoticed with the current
message pace.
Let's not post our common messages to the Clojure Circle to make it more
useful.
P.S. Posting to Public also posts to Clojure.
--
You received this message because you are subscribed to the Google
Groups
1) IMHO full SQL-like transaction support and NoSQL are quite contradicting
things. You can have some atomic operations with NoSQL but not that heavy
transactions as in traditional SQL world. (Correct me if I wrong). So one of
the option is to use SQL and serialize/ deserialize documents in your
Jeremy, I can send you an invitation. Do you need it?
On Fri, Jul 15, 2011 at 4:53 PM, Jeremy Heiler jeremyhei...@gmail.comwrote:
Is Google+ invite based? How did all of you get a profile?
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to
Larry, it seems that the current folder . is not in your default
classpath. Either try ...-cp ./clojure.jar ... or add . into your
default CLASSPATH.
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to
Well, if you are going to spam, I guess Claudia will be penalized :)
Claudia beat you to it ;-) But thank you!
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new
I've updated the wiki [1], can't update the main site page[2].
http://en.wikibooks.org/wiki/Clojure_Programming/Getting_Started#Running_Clojure
http://clojure.org/getting_started
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group,
It was already mentioned recently that clojure.org looks outdated.
May be we just need the main site to link to a few valuable proven community
resources?
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to
Ad hoc transactions are possible in MongoDB, they are just not provided
out-of-the-box and (I guess) impose performance penalty.
http://www.mongodb.org/display/DOCS/two-phase+commit
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this
Tim, I think you mean CouchDB, which indeed is master-master. MongoDB is
extended master-slave.
On Sun, Jul 17, 2011 at 6:45 PM, Tim Robinson tim.blacks...@gmail.comwrote:
MongoDB is similar, in that it supports conflict resolution, only I
believe you only have the option for the last write
Also check this great online introduction (targeting 1.0):
http://java.ociweb.com/mark/clojure/article.html
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members
I checked the great manual 113 Design Guidelines for Homepage Usability
from Jakob Nielsen and here are my thoughts about the main page (clojure.org
):
1) It's misleading that some links in the left pane are underlined (API,
Recent changes, Libraries, Community) while others are not.
2) It's
IMO, it's a very good idea to give much more accent on the easiest options
for newcomers.
Other than not recommending Emacs, do people think that the overall
organization I suggested is a good idea? I should reiterate that
other information needs to be accessible; for now I'd just like to see
Are there plans to decrease the amount of js dependencies that ClojureScript
makes compared to the raw Google Closure?
Currently the difference in final js code size is about 28kb (5kb zipped) in
advanced mode for a simple example.
--
You received this message because you are subscribed to the
Yes, after compiling this example and its raw Google Closure equivalent:
(ns bgcolor
(:require [goog.fx.dom :as fx-dom]))
(defn ^:export animate [elem start end]
(let [
anim (fx-dom/BgColorTransform. elem start end 2000)]
(.play anim (
After compilation through the Google
It got improved a lot in Clojure 1.3 which is beta for a while.
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
BTW, Is there a case when AI self-modifying program is much more elegant
than AI just-data-modifying program?
I just can't figure out any example when there is a lot of sense to go the
self-modifying route.
--
You received this message because you are subscribed to the Google
Groups Clojure
On Sat, Sep 3, 2011 at 3:01 AM, Tal Liron tal.li...@gmail.com wrote:
I always ask, though, why people think they need async I/O for a web
server. Async might be important if you are streaming video, audio, etc.
(And if you are, you're probably better off with a robust CDN.)
Async can also
You can also put a commented out example call of the function, like this:
(defn some-magic [spells wizards]
...)
; (some-magic 5 [:gendalf :einstein])
Which is also handy for quick evaluation in the REPL.
Or you can put these example calls in the (automatic) test code.
--
You received this
Dennis, may I suggest you to read this great article on Clojure:
http://java.ociweb.com/mark/clojure/article.html
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new
Just my 2 cents: If you are ok with a quick dirty hack you can fix contrib
libraries locally.
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated -
Hi,
How can I see the error line number in SLIME? Or even somehow place editor
point on the place of the error?
For example when I load file in a lein repl, it prints:
java.lang.Exception: Unable to resolve symbol: dd in this context
(mytest.clj:447)
However when I load this file in the SLIME
Thanks, Phil !
That's it. I was using slime-load-file instead of
slime-compile-and-load-file
If you compile using C-c C-k (where it sends the filename instead of
the contents of the file) then it can determine line numbering.
--
You received this message because you are subscribed to the
Also bear in mind that due to the functional nature of Clojure you can
debug a lot of problems using tracing, like clojure.contrib.trace (for
1.3), C-c C-t in Emacs, or this handy macro:
(defmacro dbg[x] `(let [x# ~x] (println dbg: '~x = x#) x#))
(func1 (func2 arg1) arg2) - (dbg (func1 (dbg
Looks interesting. Did you use it with Clojure 1.3 or earlier?
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
Despite of what written here: http://dev.clojure.org/display/doc/1.3
there is no two form assert in 1.3.0-master-SNAPHOT
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from
I see, my lein - maven thinks that the latest
clojure-1.3.0-master-SNAPSHOT.jar was built in January.
current master seems to disagree with you:
https://github.com/clojure/clojure/blob/master/src/clj/clojure/core.clj#L4222
--
You received this message because you are subscribed to the Google
I see, there is no clojure-1.3.0-master-SNAPSHOT.jar in maven and I
should use 1.3.0-RC0
I see, my lein - maven thinks that the latest
clojure-1.3.0-master-SNAPSHOT.jar was built in January.
current master seems to disagree with you:
Apparently not: 1.3.0-master-SNAPSHOT/ 20-Dec-2010
there used to be http://build.clojure.org/snapshots, but I don't know
whether it's still cared for.
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to
Is this the intended behavior? Note the present/missing default clause
user (set! *warn-on-reflection* true)
user (case (rand-int 3) 0 :zero 1 :one 2 :two)
Performance warning, NO_SOURCE_FILE:1 - case has int tests, but tested
expression is not primitive.
:two
user (case (rand-int 3) 0 :zero 1
Indeed. Then clojure.core/rand-int should be improved I guess.
The default case in `case' (what a sentence) is not paired like in
`cond'. You want something like:
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to
What is the intended difference between type hinting like ^long and
type coercing like (long arg)?
For example my gut feeling for this case is to use ^long but it is forbidden:
(loop [^long x 0]
...)
Can't type hint a local with a primitive initializer
So I use
(loop [x (long 0)]
...)
But
I mean in Clojure 1.3 .
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this
Hi,
Is it a bug or I'm doing something wrong? I can't get rid of
auto-boxing in the second example, neither by type hinting nor by type
coercing of changed* locals.
(set! *warn-on-reflection* true)
This compiles fine:
(loop [x 1 changed 0]
(if (= x 10)
changed
(recur (inc x)
When I convert the following code to use transients it returns
different result. Am I doing anything wrong or is it a bug in
transients?
(defn tt []
(loop [i 0 tset #{}]
(if (= i (int 5e5))
(count tset)
(recur (inc i)
(let [nn (rem (* i (int 1e3)) 131071)
Then it is contrary to the docs:
http://clojure.org/transients
Transients support the read-only interface of the source, i.e. you
can call nth, get, count and fn-call a transient vector, just like a
persistent vector.
Examining the Java sources it looks like the transient collections do not
Yes, now it works. Thanks.
Try rewriting (contains? tset %) as (tset %).
Let me know if that change fixes your program.
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts
My last mail remain unnoticed, so I'll clarify the question:
Clearly (the main) clojure.org is not the main documentation source
for 1.3. To prove it - try to find the mention of Factory function
taking a map, e.g. map-MyRecord there.
So what is the best search strategy right now to find the
Thanks, I see now.
Just want to stress that it is important to have a single point of
diving into the documentation. And it's best of all to be on the
http://clojure.org , not just http://dev.clojure.org.
IMHO with the call to community to move to 1.3 the current outdated
clojure.org can fight
Me too.
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email
I get the subject error when trying to deserialize a big map (70kb)
using load-file.
Is this by design?
There was an advice in the old thread to use smaller methods. But
while small methods are good, breaking continuous data into smaller
pieces looks like a hack.
Should I use some other
Indeed. Thanks for the answer!
If it's really just data (not containing function or macro calls you
are expecting to be evaluated), just use (read ...). That will parse
the file, returning a Clojure data structure without evaluating it.
// ben
--
You received this message because you are
Seems like a bug:
The following compiles:
(let [[^Double x ^Double y] [0.1 0.2]] (+ x y))
This does not:
(let [[^double x ^double y] [0.1 0.2]] (+ x y))
Unable to resolve classname: double
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to
tested under Clojure 1.3
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this
I coded mutable Dejkstra algorithm isolated in a single function,
because it's easier for me to maintain it - I used to write a lot of
mutable algorithms. But I consider this code not idiomatic though
useful in my case.
So I think idiomatic Clojure code is not as ubiquitous as you probably
mean
Clojure is extremely consise.
IMO it's very beneficial for maintaining a complex codebase and
underestimated in the corporate world.
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note
I completely understand the Rich desire to keep flexibility and fun in
Clojure development. And I think it is important for the success of Clojure.
As for me a donation is much more about what is already done and enforces
little if any obligations.
I hope Rich will accept them from people who
I use it with Netbeans 6.9.1 . Usually it takes some time for Enclojure to
be adapted to the latest Netbeans.
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members
lein: I just use lein new MyProject then lein pom and open the pom in
Netbeans. Thus I have both lein and Enclojure. The drawback is that you have
to run lein pom every time you change the project dependencies (in the
lein project.clj).
Loosing settings: I observed that too in rare circumstances
Thanks, Glen.
A correction: calx does not belong to the GUI category.
May be Utility is better?
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are
Another correction: there are too fleet mentions:
http://clojure-libraries.appspot.com/show/27049
http://clojure-libraries.appspot.com/show/32017
On Wed, Mar 2, 2011 at 1:00 AM, Glen Stampoultzis gst...@gmail.com wrote:
Changed. Thanks.
--
You received this message because you are
Thanks, Eric!
On Fri, Apr 29, 2011 at 8:56 PM, Eric Thorsen ethor...@enclojure.orgwrote:
This version is a port of 1.4 to run on Netbeans 7.0.
You can get this using the update site.
For more information, please go to:
www.enclojure.org
--
You received this message because you are
Hi Vicent,
I think it's:
*project.clj editing*
lein deps
lein pom
On Tue, Jun 7, 2011 at 12:18 PM, Vicente Bosch vbosch.cloj...@gmail.comwrote:
After we insert a new dependency in project.clj, we have to run lein pom
again so that everything gets refreshed. I am totally fine with this. Is
Hi,
lazy seqs are slow for number crunching, you can try to remove them.
Then you can check that you make (set! *warn-on-reflection* true). And
that your code does not have the warnings.
Then may be use native (Java) data structures or even arrays.
Then you can change defn for definline for
So we are back to the documentation reach issue again.
I think the best solution would be one (!) central community wiki and
prominent mentions of it from the clojure.org .
The wiki could contain the links to the latest tutorials and so on. It
should have quite low barrier to entry.
--
You
Thank you, Andy!
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group,
I have used mutable code working on Java structures when I was
implementing the kind of Dijkstra algorithm. As long as it is
encapsulated in a function it seems quite a good approach to me.
And also quite readable given the amount of mutable Dijkstra examples
in the Internet.
--
You received
Hi, finally I can show you some quite complex project that I made in Clojure.
The Idea:
Every lurepet (big picture) that you see on the site has some genes
and is drawn according to them.
After the best lurepets are selected they can be bred to make children
looking like their parents. This is
Yes, its http://lurepet.com
Do you have a link to the running project?
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient
The same here.
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send
It looks like our community already has a lot of articles, tutorials,
gists, but they are just not very reachable to beginners.
May be what we really need is a meta site or article on clojure.org or
promotion of other meta site like
http://stackoverflow.com/questions/tagged/clojure, with a lot of
* RainbowDelimiters
* desktop-save-mode
* ergoemacs-mode (modified)
* bm for bookmarks
* color-theme with modified color-theme-tomorrow
* anything
Not a plugin, but I found this setting useful: (setq
recenter-positions '(0.2 0.4 0.6 0.8 bottom top))
--
You received this message because you are
Hi,
I believe I've heard claims that nothing stops Clojure 1.3 code to be
made very close to Java in terms of execution speed.
However when trying to match the speed of ad-hoc Heapsort
implementation I have faced essential obstacles.
Setting type hints and coercions was quite easy. A bit harder
There is also a non-idiomatic way - transform your code to use a
native Java data structure like ArrayList or primitive array.
You may want it for the speed or if the mutable algorithm is more
readable. Anyway isolation of the mutable code is always a good
advice.
(defn new-game []
(let
Also discovered I can prefix `java -cp ...` with `rlwrap` to get back a nice
REPL experience.
If you want to use rlwrap, check out its options like --remember,
-c, -b and -f. Here is the script I use to run repl from the
root of the lein project:
breakchars=(){}[],^%$#@\\;:''|\\
1 - 100 of 129 matches
Mail list logo