Re: Switch devops environments via namespaces

2023-05-18 Thread Joe R . Smith
I mean, it works, it’s clever, … is it more or less “safe” is my question. 


On May 18, 2023, at 12:02 PM, Felix Dorner  wrote:


Clojure noob here, I might be totally off the track or committing crimes, so 
please advise.

For ops, I have to often call rest services in different environments, say prod 
and nonprod. My coworkers use postman and clicky clicky stuff, well, not my 
style, I want to use emacs and cider. I've thus written a set of functions that 
call these services, taking the prod/nonprod server as an argument:

(ns services)
(defn rest [server arg1 arg2] ...)

I'm thinking how it would feel to get rid of the server parameter, and resolve 
it inside the function, depending on the current namespace. I can then just 
leave my cider open, use Cider shortcuts to switch to the prod/nonprod 
namespaces quickly and run my stuff. Also, I would be constantly aware of which 
environment I'm in by looking at the repl prompt. Sounds neat somehow. But I 
feel I am venturing off the track somehow, but this seems to work:

(ns prod
  (:require
   [services :refer :all]))

(def server "http://prod-server.com;)

(ns nonprod
  (:require
   [services :refer :all]))

(def server "http://nonprod-server.com;)

(ns services)
;; no more server arg...
(defn call-a [arg1 arg2]
  (let [server @(resolve 'server)]
     ;; ... do stuff with server))

What do I miss? Complete nonsense? Better solutions?
Thanks again for comments,
Felix




-- 
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 to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en 
 
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com 
 .
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/f16c7ac6-107c-48fd-a6af-c9e91687fe18n%40googlegroups.com
 

 .

-- 
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 to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/0100018830153cf6-3c4a1729-13a9-472b-aad0-86f85350e7d1-00%40email.amazonses.com.


Re: clojure is supposed to be 'code is data' yet I can't add to the end of a list?

2021-07-18 Thread Joe R . Smith
It is a singly linked list, so the natural position at which to add is the 
front. conj will add to the front of lists and to the end of vectors.

Consider using a vector if you want to append to the end. It'd be more 
semantically correct.

More background: If you append to the end of a singly linked list, generally, 
you'd have to follow the references starting from the first element until you 
reached the last element. Clojure uses persistent data structures, meaning when 
you add an item to a collection you share structure with the original item. In 
the case of a singly linked list, adding an item to the front is as simple as 
creating a new list that points to the old list. E.g., adding 5 to the linked 
list 2 -> 3 -> 4 can be thought of as 5 -> 2 -> 3 -> 4.

---
Joe R. Smith
j...@uwcreations.com <mailto:j...@uwcreations.com> 
@solussd


On Jul 17, 2021, at 2:21 PM, Tanya Moldovan mailto:tanya.moldo...@gmail.com> > wrote:



Hi,

conj <https://clojuredocs.org/clojure.core/conj>  adds at the end of a vector, 
but at the beginning of a list. It is how it is implemented. I think this 
<https://stackoverflow.com/questions/5734435/put-an-element-to-the-tail-of-a-collection>
  and this <https://medium.com/@greg_63957/conj-cons-concat-oh-my-1398a2981eab> 
 sums it up why.

You could achieve what you want by using concat 
<https://clojuredocs.org/clojure.core/concat> (note this returns a LazySeq):

user=> (concat grid '((off 1 2 3 6)))
(-> (grid 10 10) (toggle 2 3 4 5) (off 2 3 4 5) (on 2 3 4 5) (off 1 2 3 6))

Though I'm not exactly sure what is the end goal of this but I'd rethink the 
way it is done. 



On Sat, 17 Jul 2021 at 14:24, SideStep mailto:nesvarbu.vi...@gmail.com> > wrote:

 <https://stackoverflow.com/posts/68420449/timeline> 
 
 

I have a representation of a matrix in grid.clj file:


(-> (grid 10 10)
(toggle 2 3 4 5)
(off 2 3 4 5)
(on 2 3 4 5))


It's a list of functionts, first one initializes a grid, others modify it.
Clojures' 'code is data' supposed to make it easy for me to modify that 
representation by adding an instrucion at the end of collection. List is an 
ordered collection right? Order matters. How do I add an instruction to the end 
of the list then?
Something like this:


(def grid (read-string (slurp "grid.clj")))
(conj grid '(off 1 2 3 6))


Yet I can't add to the end of the list, which is a data structure that is 
evaluatable as code. How is it 'code as data' if I can't add to the end of the 
ordered collection that is meant for code (as data)?

 

-- 
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 
<mailto: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 to
clojure+unsubscr...@googlegroups.com 
<mailto:clojure%2bunsubscr...@googlegroups.com> 
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en 
<http://groups.google.com/group/clojure?hl=en> 
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com 
<mailto:clojure+unsubscr...@googlegroups.com> .
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/efd72013-a85e-46e8-b9db-10dde1a8a235n%40googlegroups.com
 
<https://groups.google.com/d/msgid/clojure/efd72013-a85e-46e8-b9db-10dde1a8a235n%40googlegroups.com?utm_medium=emailutm_source=footer>
 .

-- 
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 
<mailto: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 to
clojure+unsubscr...@googlegroups.com 
<mailto:clojure+unsubscr...@googlegroups.com> 
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en 
<http://groups.google.com/group/clojure?hl=en> 
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com 
<mailto:clojure+unsubscr...@googlegroups.com> .
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CADBYUPvzMtspZxxc5PhmkXyNg7kJqgMG%3DWVkUe2FKsf%2BGsdaFA%40mail.gmail.com
 
<https://groups.google.com/d/msgid/clojure/CADBYUPvzMtspZxxc5PhmkXyNg7kJqgMG%3DWVkUe2FKsf%2BGsdaFA%40mail.gmail.com?utm_medium=emailutm_source=footer>
 .

-- 
You received this message because you are subsc

Re: OK idea to replace conj and cons with "prepend" and "append" macros that have consistent behavior and return same types as args?

2018-07-19 Thread Joe R . Smith
Building off of something Benoit mentioned about conj not being about order, 
but about adding to a collection, consider conj’s behavior when adding a 
map-entry to a hash-map: 

(conj (hash-map :a 4 :c 1) [:b 3])
=> {:c 1, :b 3, :a 4}

conj is an interface for adding– not to be conflated with order.




On Jul 19, 2018, at 10:23 AM, Christian Seberino mailto:cseber...@gmail.com> > wrote:

Thanks.  I caught that yesterday.  Like I said, I'm definitely a beginner. ;)

On Thursday, July 19, 2018 at 2:05:20 AM UTC-5, Vladimir Bokov wrote:
First of all, def in a fn body is antipattern (use let), then do into on a 
itself

(defn concat_ [a b]
  (if (vector? a)
    (into a b)
    (concat a b)))

четверг, 19 июля 2018 г., 4:07:46 UTC+7 пользователь Christian Seberino написал:
I'm just a Clojure beginner but it seems that the Lisp Way(TM) is to append and 
prepend one or more elements
with a single command if possible.  The logical name for this command seems to 
be concat which led to this..

(defn concat_ [a b]
      (def c (concat a b))
      (if (vector? a)
          (into [] c)
          c))

(concat_ [1 2] [3 4]) => [1 2 3 4]

(concat_ '(1 2) '(3 4)) => (1 2 3 4)

(concat_ [1] [2 3]) => [1 2 3]

Lists return lists and vectors return vectors.  Simple.
Yes yes I know it is slow.  I also know I need to expand concat_ to handle 
other data structures.

In my little newbie world, this "feels" like the ultimate "right" solution.

Chris


-- 
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 to
clojure+unsubscr...@googlegroups.com 
 
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en 
 
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com 
 .
For more options, visit https://groups.google.com/d/optout.

-- 
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 to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: OK idea to replace conj and cons with "prepend" and "append" macros that have consistent behavior and return same types as args?

2018-07-16 Thread Joe R . Smith
FWIW, the same is true for the inverse operation. 

If you pop an item off a list you’ll get the list, less the item you conj’d. 
Same is true with a vector. 

---
Joe R. Smith
j...@uwcreations.com <mailto:j...@uwcreations.com> 
@solussd


On Jul 16, 2018, at 4:31 PM, Alex Miller mailto:a...@puredanger.com> > wrote:



On Monday, July 16, 2018 at 4:08:47 PM UTC-5, solussd wrote:
Another way to think about it is lists and vectors are different and the 
idiomatic way to add items to them is different. 

I would say different data structures have different ways to *efficiently* add 
items to them, and conj is an operation to add items efficiently (meaning, 
sub-linear time). So when you see conj, you know it is always a "fast" 
operation. 
 A (singly-linked) list is usually prepended to (otherwise you have to walk the 
entire list to find the end). A vector is usually added to at it’s n+1 index, 
where n is the size of the vector. The conj function is polymorphic.

cons takes a seq and returns a seq. It only cares that it can get a seq on 
whatever collection you give it and will always prepend to that seq.

Slight modification - I would say cons takes a *seqable* and returns a seq. For 
example, a vector is seqable, but not a seq.

-- 
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 
<mailto: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 to
clojure+unsubscr...@googlegroups.com 
<mailto:clojure+unsubscr...@googlegroups.com> 
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en 
<http://groups.google.com/group/clojure?hl=en> 
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com 
<mailto:clojure+unsubscr...@googlegroups.com> .
For more options, visit https://groups.google.com/d/optout.

-- 
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 to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: OK idea to replace conj and cons with "prepend" and "append" macros that have consistent behavior and return same types as args?

2018-07-16 Thread Joe R . Smith
Another way to think about it is lists and vectors are different and the 
idiomatic way to add items to them is different. A (singly-linked) list is 
usually prepended to (otherwise you have to walk the entire list to find the 
end). A vector is usually added to at it’s n+1 index, where n is the size of 
the vector. The conj function is polymorphic.

cons takes a seq and returns a seq. It only cares that it can get a seq on 
whatever collection you give it and will always prepend to that seq.

On Jul 16, 2018, at 3:15 PM, Christian Seberino mailto:cseber...@gmail.com> > wrote:

I'm impressed with Clojure syntax and I'm still a beginner.

I noticed conj behaves differently for lists and vectors.  I also noticed cons 
does not return a vector for a vector input.

Is there any downside to make 2 macros...prepend and append that behave the 
same for lists and vectors, and also,
return same types as inputs?

If I'm not mistaken, I believe it is for performance reasons that these are not 
already in the standard language?
For those that care about performance, it would be beholden on them to pick the 
correct macro for their
specific data structure.

Good idea?

Thanks!

Chris



-- 
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 to
clojure+unsubscr...@googlegroups.com 
 
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en 
 
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com 
 .
For more options, visit https://groups.google.com/d/optout.

-- 
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 to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Comparing and selecting web API libraries

2018-03-08 Thread Joe R . Smith
Definitely give Pedestal a look. There is also wonderful Lacinia integration (a 
Clojure GraphQL library). 

Pedestal’s notable capabilities: 
https://github.com/pedestal/pedestal/blob/master/README.md#notable-capabilities

---
Joe Smith
j...@uwcreations.com  
@solussd


On Mar 8, 2018, at 11:19 AM, Erik Assum  
> wrote:

As always, the answer is it depends. 
If I were to greenfield some personal project now, I’d probably go with bidi, 
since I’d probably just end up with two endpoints. One for accepting graphql 
queries and one for accepting commands. 

At work there is always more requirements, like development speed and maturity 
which would probably guide me to using compojure-api, the probably safe and 
boring bet. 

Erik. 
-- 
i farta

8. mar. 2018 kl. 17:40 skrev jmckitr...@gmail.com  
:

So it sounds like your choice would be compojure-api, correct?

On Thu, Mar 8, 2018 at 11:28 AM Erik Assum  > wrote:
Hi, 

On my current project, we’re using compojure with liberator. It works, but 
there are a few down sides as far as I can see:
Compojure is opaque, eg the routing is expressed using functions/macros, where 
as other routing libs like bidi and reitit
(https://github.com/metosin/reitit) express the routing as data. Also, AFAIK 
compojure is not bi-directional, if that’s a need you have.
Compojure doesn’t offer coercion/swagger out of the box, but compojure-api 
fixes that.

Another thing to be aware of is schema vs spec support. Compojure-API has 
support for both.

As for liberator vs yada, I have noe clear opinion.

Erik.

On 8 Mar 2018, at 17:14, Jonathon McKitrick  > wrote:

I’m looking at Liberator for our first web API project. But I’m also 
considering Compojure-API and Yada. Any thoughts from anyone who’s done this 
comparison, or has used one of them?

-- 
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 to
clojure+unsubscr...@googlegroups.com 
 
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en 
 
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com 
 .

For more options, visit https://groups.google.com/d/optout.

-- 
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 to
clojure+unsubscr...@googlegroups.com 
 
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en 
 
--- 
You received this message because you are subscribed to a topic in the Google 
Groups "Clojure" group.
To unsubscribe from this topic, visit 
https://groups.google.com/d/topic/clojure/Jic0ijhdTEI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to 
clojure+unsubscr...@googlegroups.com 
 .
For more options, visit https://groups.google.com/d/optout.
-- 
Jonathon McKitrick

-- 
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 to
clojure+unsubscr...@googlegroups.com 
 
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en 
 
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com 
 .
For more options, visit https://groups.google.com/d/optout.

-- 
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 

Re: ANN: Cognitect acquired by Microsoft

2017-04-01 Thread Joe R . Smith
Beware the 1st of April. 

---
Joseph Smith
j...@uwcreations.com  
@solussd


On Apr 1, 2017, at 3:00 PM, Gregg Reynolds  > wrote:

made ya look!


-- 
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 to
clojure+unsubscr...@googlegroups.com 
 
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en 
 
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com 
 .
For more options, visit https://groups.google.com/d/optout.

-- 
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 to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: How is the emphasis of “data over code” different than the XML advocacy of the early 2000s?

2016-02-01 Thread Joe R. Smith
The reason XML has a bad rap is because it has been used for things like 
configuration files. XML was intended as a host/platform/language-agnostic data 
interchange format, not something humans would write by hand, much less have to 
read. 



> On Feb 1, 2016, at 4:02 PM, Josh Tilles  wrote:
> 
> As I’m watching Michael Drogalis’s Clojure/Conj 2015 presentation “Onyx: 
> Distributed Computing for Clojure” 
> , I'm distracted by a nagging 
> worry that we —as a community— are somehow falling into the same trap as the 
> those advocating XML in the early 2000s. That said, it's a very vague unease, 
> because I don’t know much about why the industry seems to have rejected XML 
> as “bad”; by the time I started programming professionally there was already 
> a consensus that XML sucked, and that libraries/frameworks that relied 
> heavily on XML configuration files were to be regarded with suspicion and/or 
> distaste.
> 
> So, am I incorrect in seeing a similarity between the “data > code” mentality 
> and the rise of XML? Or, assuming there is a legitimate parallel, is it 
> perhaps unnecessary to be alarmed? Does the tendency to use edn instead of 
> XML sidestep everything that went wrong in the 2000s? Or is it the case that 
> the widespread backlash against XML threw a baby out with the bathwater, 
> forgetting the advantages of data over code?
> 
> Cheers,
> Josh
> 
> -- 
> 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 to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en 
> 
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com 
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
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 to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Reality check: EC2 + Ubuntu + Atom (from GitHub) + Clojure?

2015-08-03 Thread Joe R. Smith
I’ll come out as an Emacs - Cursive convert. I had been using emacs for 
Clojure development for 6+ years before I switched. Originally I had no 
intention of actually switching, but, as Colin suggested, I found enough 
additional value in Cursive to make my experimentation with Cursive permanent.


 On Aug 3, 2015, at 5:02 AM, Colin Fleming colin.mailingl...@gmail.com wrote:
 
 For Clojure nothing beats emacs + CIDER
 
 As a clearly biased participant here (I develop Cursive) I'd like to politely 
 disagree with this. Lots of people are switching to Cursive from Emacs, 
 including many that you've heard of. Obviously different strokes for 
 different folks etc, but a lot of experienced Emacs users are finding enough 
 additional value in Cursive (and potentially other environments, but I can't 
 really speak to them) that they're willing to go through the pain of 
 switching editing environments to get it. A lot of people also switch from 
 one to the other depending on what they're doing - lein and boot provide 
 enough of a layer that this is not painful and allows you to use the 
 strengths of one or the other.
 
 Obviously I'm delighted if people are happy with the tools that they're 
 using, whatever they may be, but I do think it's time to lay to rest the myth 
 that Emacs is the only (or unequivocally the best) environment for Clojure. 
 That hasn't been true for a long time - there are lots of good options.
 
 On 3 August 2015 at 04:05, Jason Lewis ja...@decomplecting.org 
 mailto:ja...@decomplecting.org wrote:
 IntelliJ CE (the free version) has served me well for Java and (playing with) 
 Cursive for Clojure. I can't speak to Python.
 
 For Clojure nothing beats emacs + CIDER, and emacs is a fine choice for 
 Python. I generally stick to IntelliJ for Java, but I do know a few people 
 who use emacs for Java and then do a run through an IDE for static analysis 
 and automated refactoring as a second step. 
 
 FWIW, I think it's worth learning the tradeoffs between editors and IDEs; I 
 wish I'd learned the difference earlier on. Maybe Python/emacs - 
 Java/IntelliJ - Clojure/emacs? Learning emacs and IntelliJ might be a bit of 
 cognitive overhead, but (insert some old saw about a good craftsmen knowing 
 his tools). 
 
 I can't imagine using Atom for Java, and using it for Clojure seems like a 
 terrible idea; no inline eval, no integrated REPL, no jump-to-fn-definition, 
 no jump-to-docstring... I used it briefly when I was still doing Ruby, it was 
 acceptable on the days when the latest update didn't cause it to crash every 
 15 minutes.
 
 
 
 On Sun, Aug 2, 2015 at 8:51 PM Mark Engelberg mark.engelb...@gmail.com 
 mailto:mark.engelb...@gmail.com wrote:
 Intellij might be your best option for a unified development platform for 
 Java, Clojure, and Python.  It won't be free though.
 
 
 
 -- 
 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 
 mailto: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 to
 clojure+unsubscr...@googlegroups.com 
 mailto:clojure%2bunsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en 
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com 
 mailto:clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout 
 https://groups.google.com/d/optout.
 
 -- 
 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 
 mailto: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 to
 clojure+unsubscr...@googlegroups.com 
 mailto:clojure%2bunsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en 
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com 
 mailto:clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout 
 https://groups.google.com/d/optout.
 
 
 -- 
 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 to
 

Re: [:ann :book] ClojureScript Unraveled

2015-07-17 Thread Joe R. Smith
I believe [:ann :book] is a variant. :D

 On Jul 17, 2015, at 1:44 PM, Fluid Dynamics a2093...@trbvm.com wrote:
 
 Nitpick: a collection of tag keywords, which can be presumed not to have 
 duplicates, is probably better represented as a set or a sorted-set rather 
 than a vector, so #{:ann :book} ClojureScript Unraveled might be 
 preferable. ;)
 
 -- 
 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 to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en 
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com 
 mailto:clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout 
 https://groups.google.com/d/optout.

-- 
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 to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [Documentation] looking for diagramming tools

2015-06-29 Thread Joe R. Smith
I use Omnigraffle to draw entity relationship diagrams like that.


 On Jun 29, 2015, at 4:13 AM, dImas Angga Saputra 
 angga.dimassapu...@gmail.com wrote:
 
 Hi Everyone,
 
 I'd like to ask about recommendation about diagramming tools,
 So i saw this post : 
 http://blog.datomic.com/2013/06/using-datomic-from-groovy-part-1.html
 
 And i try to search what tools he/she used to make diagram like the first 
 picture?
 
 I attached the diagram.
 
 Thank you in advance.
 
 Regards,
 --
 Dimas Saputra
 
 -- 
 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 to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en 
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com 
 mailto:clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout 
 https://groups.google.com/d/optout.
 day-of-datomic.png

-- 
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 to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.