Re: IllegalStateException Attempting to call unbound fn

2014-08-21 Thread Serzh Nechyporchuk
You should import LinkedBlockingQueue to your namespace.

   (ns ...
 (:import java.util.concurrent.LinkedBlockingQueue))  (recommended way)
   or
   (import 'java.util.concurrent.LinkedBlockingQueue)

Why do this error is misleading for you?


2014-08-22 1:35 GMT+03:00 gvim :

> On 21/08/2014 14:35, Serzh Nechyporchuk wrote:
>
>> This code works fine for me. Did you try to reload repl?
>>
>>
> Reloaded but now getting this error:
>
> CompilerException java.lang.IllegalArgumentException: Unable to resolve
> classname: LinkedBlockingQueue
>
> Maybe something needs :require-ing
>
> If this is the source of the original problem the error messages are very
> misleading and need some work.
>
> gvim
>
>
> --
> 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.
>



-- 
Best regards,
Serhii Nechyporchuk

-- 
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: tools.analyzer[.js/.jvm], tools.emitter.jvm, status report

2014-08-21 Thread Colin Fleming
Hi Alex,

Is the current feature expressions design basically what's under "Proposed
Solution: feature expressions" at
http://dev.clojure.org/display/design/Feature+Expressions? I read through
the comments a while back and a lot of the suggestions there got fairly
complicated, I'd be interested to know what the current plan is.

Cheers,
Colin


On 22 August 2014 13:01, Alex Miller  wrote:

> Hey David,
>
> I'm working on the feature expressions stuff. At the moment I've been
> focusing on the clj/cljs use case as that seems to be most urgent. I had
> been planning to circle back around to clr eventually though and would be
> very interested in any known issues.
>
> Alex
>
> --
> 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: tools.analyzer[.js/.jvm], tools.emitter.jvm, status report

2014-08-21 Thread Alex Miller
Hey David,

I'm working on the feature expressions stuff. At the moment I've been focusing 
on the clj/cljs use case as that seems to be most urgent. I had been planning 
to circle back around to clr eventually though and would be very interested in 
any known issues.

Alex

-- 
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: IllegalStateException Attempting to call unbound fn

2014-08-21 Thread gvim

On 21/08/2014 14:35, Serzh Nechyporchuk wrote:

This code works fine for me. Did you try to reload repl?



Reloaded but now getting this error:

CompilerException java.lang.IllegalArgumentException: Unable to resolve 
classname: LinkedBlockingQueue


Maybe something needs :require-ing

If this is the source of the original problem the error messages are 
very misleading and need some work.


gvim

--
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: setrlimit from Clojure

2014-08-21 Thread Chai Tadada
Yes, it seems possible this way (haven't tried it yet, though).

Thanks!

-- 
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: idiomatic filter-not or inverting predicate

2014-08-21 Thread Daniel Solano Gómez
On Thu Aug 21 13:01 2014, Andy C wrote:
> Hi,
> 
> 
> I was wondering what is the nicest way to do filter-not in Clojure. Here
> are 3 expressions:
> 
> user=> (filter #(apply = %) '([1 2] [1 1]))
> ([1 1])
> user=> (filter #(apply not= %) '([1 2] [1 1]))
> ([1 2])
> user=> (filter #(not (apply = %)) '([1 2] [1 1]))
> ([1 2])
> 
> 
> First one is just a base filtering. Second is taking advantage of having
> inverted predicate. Now let's assume that we have only a "positive"
> predicate, hence we would have to invert it by hand. That leads me to 3rd
> expression above.
> 
> I was wondering though is it is possible to somehow get "not" closer to
> "=", so the fact that we invert it is more obvious ...
> 
> Is it possible to do that? Or perhaps there is an easier way to code it up
> all together ?

What about 'remove' instead of 'filter'?

Sincerely,

Daniel

> 
> Thx,
> 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, 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: idiomatic filter-not or inverting predicate

2014-08-21 Thread Ambrose Bonnaire-Sergeant
Also see clojure.core/remove.


On Thu, Aug 21, 2014 at 4:04 PM, Sam Ritchie  wrote:

> I think you want complement, like (filter (complement odd?) ...)
>
>   Andy C 
>  August 21, 2014 at 2:01 PM
> Hi,
>
>
> I was wondering what is the nicest way to do filter-not in Clojure. Here
> are 3 expressions:
>
> user=> (filter #(apply = %) '([1 2] [1 1]))
> ([1 1])
> user=> (filter #(apply not= %) '([1 2] [1 1]))
> ([1 2])
> user=> (filter #(not (apply = %)) '([1 2] [1 1]))
> ([1 2])
>
>
> First one is just a base filtering. Second is taking advantage of having
> inverted predicate. Now let's assume that we have only a "positive"
> predicate, hence we would have to invert it by hand. That leads me to 3rd
> expression above.
>
> I was wondering though is it is possible to somehow get "not" closer to
> "=", so the fact that we invert it is more obvious ...
>
> Is it possible to do that? Or perhaps there is an easier way to code it up
> all together ?
>
> Thx,
> 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, 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.
>
>
> --
> Sam Ritchie (@sritchie)
>  Paddleguru Co-Founder
> 703.863.8561
> www.paddleguru.com
> Twitter  // Facebook
> 
>
> --
> 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: idiomatic filter-not or inverting predicate

2014-08-21 Thread Sam Ritchie

I think you want complement, like (filter (complement odd?) ...)


Andy C 
August 21, 2014 at 2:01 PM
Hi,


I was wondering what is the nicest way to do filter-not in Clojure. 
Here are 3 expressions:


user=> (filter #(apply = %) '([1 2] [1 1]))
([1 1])
user=> (filter #(apply not= %) '([1 2] [1 1]))
([1 2])
user=> (filter #(not (apply = %)) '([1 2] [1 1]))
([1 2])


First one is just a base filtering. Second is taking advantage of 
having inverted predicate. Now let's assume that we have only a 
"positive" predicate, hence we would have to invert it by hand. That 
leads me to 3rd expression above.


I was wondering though is it is possible to somehow get "not" closer 
to "=", so the fact that we invert it is more obvious ...


Is it possible to do that? Or perhaps there is an easier way to code 
it up all together ?


Thx,
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, 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.


--
Sam Ritchie (@sritchie)
Paddleguru Co-Founder
703.863.8561
www.paddleguru.com 
Twitter // Facebook 



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


idiomatic filter-not or inverting predicate

2014-08-21 Thread Andy C
Hi,


I was wondering what is the nicest way to do filter-not in Clojure. Here
are 3 expressions:

user=> (filter #(apply = %) '([1 2] [1 1]))
([1 1])
user=> (filter #(apply not= %) '([1 2] [1 1]))
([1 2])
user=> (filter #(not (apply = %)) '([1 2] [1 1]))
([1 2])


First one is just a base filtering. Second is taking advantage of having
inverted predicate. Now let's assume that we have only a "positive"
predicate, hence we would have to invert it by hand. That leads me to 3rd
expression above.

I was wondering though is it is possible to somehow get "not" closer to
"=", so the fact that we invert it is more obvious ...

Is it possible to do that? Or perhaps there is an easier way to code it up
all together ?

Thx,
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, 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: Presentation about Clojure

2014-08-21 Thread Bruno Kim Medeiros Cesar
I've given the following presentation in 30 minutes: 
https://github.com/brunokim/learning-clojure. I've used LightTable to 
change and evaluate code live, mutating from the code in short-preso/ to 
the one in notes/. It's probably not well annotated, I intended to make a 
video with that but didn't :P

The public was composed of developers acquainted with concurrency problems 
and a bit of functional languages, so I didn't need to "sell" immutable 
data structures, for example. The presentation covers:

   - Basic syntax
   - Immutable data structures
   - Functional idioms (filter, map, reduce)
   - JVM integration
   - Concurrency features (atoms and core.async)

I refrained from using syntax sugar such as #(...) in favor of (fn [] ...), 
and also didn't include destructuring, arrows, etc. As you have 45 minutes 
you may try to include macros, but I find it a bit risky. I'd prefer 
showing some Clojurescript instead, specially if your audience is composed 
of Web developers.

I received three questions: 

   - Q: What is the best place to start from zero? A: Check out the 
   references.md file at the repo :)
   - Q: Who uses Clojure? A: Mostly JVM shops, that is, people who also use 
   Java, Scala, etc.; among big players, we can cite Netflix, Twitter, 
   Soundcloud; and we see lots of job offers of financial institutions 
   floating around.
   - Q: Can it be used to create mobile apps? A: Yes and no, there is Neko 
   but it's not stable yet.

If you wish any pointers on how to use it, or better yet, if you know of 
some more references to include, please let me know!

Em quinta-feira, 21 de agosto de 2014 07h06min29s UTC-3, Cecil Westerhof 
escreveu:


I am far from an expert on Clojure, but I am thinking about giving a talk 
> about it on an Open Source event.
>
> Any tips about what to treat and what not to treat?
>
> I will have about 45 minutes.
>
> -- 
> Cecil Westerhof 
>

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


[ANN] shadow-pgsql: PostgreSQL without JDBC

2014-08-21 Thread Thomas Heller
Hey Clojure Folk,

I'm close to releasing the first alpha version 
of https://github.com/thheller/shadow-pgsql a "native" interface to 
PostgreSQL I wrote.

Its an implementation of the native binary protocol without any intent to 
ever support JDBC. Mostly because that provides a bunch of features I never 
use, but no support for features I wanted. It is mostly Java but I will 
probably only use it from Clojure so that is my primary goal going forward. 
I think the Java bits are close to stable.

I'm looking for interested beta testers and feedback. I'm bad at writing 
docs cause I never know where to start since there are so many features and 
differences to JDBC.

I have an example repl session here to get started:
https://github.com/thheller/shadow-pgsql/blob/master/src/examples/repl.clj

I would not recommend using it on "important" data yet cause it might very 
well eat it all. My goal is to move my projects to shadow-pgsql over the 
next few months, so a 1.0 should not be very far off.

Anyways, I'm happy to answer questions if anyone is interested.

Cheers,
/thomas

-- 
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: Is Clojure a language for growth?

2014-08-21 Thread Steven Degutis
Call me old-fashioned, but this seems like not the best way to
approach choosing a language. It should be chosen pragmatically, by
considering what works best for the task at hand, not because of
arbitrarily set rules, and never because a language is new and
exciting. Good programming techniques are timeless and
language-agnostic, and most of what you'll write can be done in almost
any language pretty cleanly, so it's best to use whatever language
makes the task the most practical. For example, I'll be writing some
code this evening that downloads several .tgz files, extracts a
docs.json file out of them, and uses these to build an HTML suite, all
without touching the disk. I was going to use Ruby, but Go has much
better support for in-memory I/O streams/buffers, so that's what I'll
use. Also, trying to stick to one language is only going to cause more
problems, in my experience. Different real-life problems need
different tools, even when the problems are related and inter-mingled.
In fact I wrote about this in a recent blog post for some reason, and
it seems relevant to the point I'm trying to make:
http://sdegutis.github.io/2014/08/18/age-of-the-polyglot/

On Thu, Aug 21, 2014 at 3:48 AM, Arthur Boyer  wrote:
> Thanks for all the great advice. I think it really reinforces another thing
> I like about Clojure, that it has a wonderful community.
>
> One idea that's come up several times is the notion that if we push Clojure
> then any problems we have will get blamed on Clojure, and unfortunately this
> rings true to me. At the same time, my boss is keen on choosing one language
> and sticking with it, something I disagree with, and if we do that it is
> unlikely that we'll get another chance to use Clojure in the foreseeable
> future.
>
> Beating the averages was a great essay, and one that encouraged me to learn
> Clojure. I'll pass it on to my boss.
>
> We're tending to focus on hiring smart people rather than people with a
> particular set of programming skills. Ironically one of our interview
> questions is around immutability, since we all agree that's crucial to
> building great systems. I'm optimistic that once we have some enertia it
> will be easy for smart devs to come on board and get up to speed with
> Clojure.
>
> I think the dev team is a good fit for Clojure, currently there are only
> three of us (we're in a hiring phase), and two of us have used, and really
> like, Clojure. Unfortunately the boss' experiences with C++ and to a lesser
> extent Ruby seem to have made Clojure not a good fit for him. He's had a
> play with Clojure, and completely turned against it after trying to write a
> Sieve of Eratosthenes and creating something really, really slow. The boss
> isn't going to be writing any code, but is very opinionated about what we
> should be using, at this point he strongly favours Groovy. At least it's not
> Java.
>
> The Cognitect proof of concept idea is a good one, and in a different
> situation, or different stage of the situation I'd go for it.
>
> I've read quite a bit about the kind of microservice architectures being
> used at places like Spotify, and I think it would be a good way for us to
> go, but unfortunately at this stage we're a small core in a company that's
> trying to grow quickly, so that kind of thing is further down the line.
>
>
> On 20 August 2014 22:37, aboy021  wrote:
>>
>> Is Clojure a suitable language for a company that needs to grow quickly?
>>
>> If a company wants to be able to hire staff and get them up to speed, as
>> well as have options for bringing in contractors and outsourcing some work,
>> is Clojure a good choice?
>>
>> We've had trouble finding Clojure devs, and others have complained of how
>> hard it is to learn Clojure and read the code from open source projects,
>> especially for those with backgrounds in languages like C++.
>>
>> I think Clojure should be a good fit for us because it is expressive,
>> flexible, and we are still discovering new aspects of the problem domain.
>> I'm biased on this because I really enjoy Clojure at home, and want to use
>> it commercially.
>>
>> I'm really looking for arguments that will help me persuade my boss that
>> the risk of starting our next project in Clojure is one worth taking.
>>
>> Thanks for any suggestions.
>>
>> --
>> 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/TfyA0qPIjmw/unsubscribe.
>> To unsubscribe from this

Re: Is Clojure a language for growth?

2014-08-21 Thread Sean Corfield
On Aug 21, 2014, at 1:48 AM, Arthur Boyer  wrote:
> One idea that's come up several times is the notion that if we push Clojure 
> then any problems we have will get blamed on Clojure, and unfortunately this 
> rings true to me. At the same time, my boss is keen on choosing one language 
> and sticking with it, something I disagree with, and if we do that it is 
> unlikely that we'll get another chance to use Clojure in the foreseeable 
> future.

It's a shame your boss - who won't be coding and clearly has fairly limited 
experience with modern programming tools - seems so intent on dictating 
technology to the rest of you.

> The boss isn't going to be writing any code, but is very opinionated about 
> what we should be using, at this point he strongly favours Groovy. At least 
> it's not Java.

At least he's bought into the JVM so you're on the right path. If he's 
concerned about performance you may find Groovy too slow for certain things 
(depending on what exactly your company does) and that may be a way to sneak in 
small libraries that you write in Clojure to replace slow pieces of Groovy.

Where I work - World Singles - they had historically been a Windows / 
ColdFusion shop. When I joined as a part-time contractor five years ago, they 
were just starting on a complete rewrite of the dating platform. They were 
still happy with ColdFusion but early on in the project, the new contractors 
they'd hired pressed for a move to Linux and to Railo (a JBoss community 
project that provides a FOSS implementation of CFML with a smaller footprint 
and better performance).

One aspect of the platform had always been problematic: the email generator. It 
really needed to run 24x7 as a background process and CFML is only a web 
language so they'd tried a few other technologies. Once I was onboard, I 
suggested a rewrite in Scala (to leverage actors) and got a reasonable version 
working (in about 1,000 lines of code). It was back in the 2.7/2.8 days so the 
Actor library had known memory leaks (and the tool chain was a PITA as new 
versions of Scala broke everything).

I was exposed to Clojure in early 2010 - I attended a local "bootcamp" run by 
Amit Rathore (Clojure in Action) - and thought that might be a promising 
alternative to Scala for the email generator with parallel map, agents, futures 
and so on. I wrote a proof of concept (in about 300 lines) and demonstrated it. 
It didn't suffer from the memory leaks of the Scala version so it was:

a) much more stable
b) much simpler code (being one third the size of the Scala version)
c) slower than the Scala version

That initial version was capable of about a quarter of a million HTML emails a 
day (running lots of database queries and lots of calls to a search engine we 
use - Discovery by Transparensee). It was enough to get it accepted as our 
production version.

A few, relatively small, tweaks to the code boosted performance to three 
quarters of a million HTML emails a day and subsequent tweaks boosted it to 
about one and a quarter million. We added two more instances of the process, 
configured for different searches, and the search engine became the bottleneck. 
We've just completed an upgrade and reorganization of the server infrastructure 
and now we're ticking along at three million HTML emails a day.

Once I'd shown Clojure was viable for us (back in 2011), we started rewriting a 
lot of low-level parts of our CFML code base in Clojure and gradually started 
adding other processes fully written in Clojure. Our real time chat service is 
all Clojure on the back end. Nearly all of our scheduled tasks are pure Clojure 
and all of our "24x7" processes are pure Clojure. We have 21,000 lines of 
Clojure at this point. We're slowing moving toward a time in which CFML will 
remain only for Views and Controllers and our entire dating platform Model will 
be Clojure. Eventually I hope we'll replace CFML with Clojure even for the 
Views and Controllers. We're also building an internal app entirely in 
Clojure(Script) using Om and Sente (core.async over Web Sockets).

Based on my experience at World Singles, here's my recommendation: go with his 
choice of Groovy to start with (and Grails, I assume?). Look for small pieces 
to write in Clojure and sneak them in where they improve performance or 
dramatically improve maintainability. Don't go overboard - do it only where you 
can show a clear improvement over the Groovy solution you've already created. 
Don't push to cross-train other developers. Don't push to write all new code in 
Clojure. Slowly, over time, you'll just find you're using more and more Clojure 
and having fewer bugs and being able to adapt to changing requirements faster. 
As long as you don't make a big deal of it - and you're careful to make sure 
each new piece of Clojure is a success - better than the Groovy equivalent - 
your team will slowly make the change.

I was the only Clojure developer at World Singles for quite a while, then 
a

Re: tools.analyzer[.js/.jvm], tools.emitter.jvm, status report

2014-08-21 Thread dmiller
Nicola,

Thanks for the very helpful comments.
I'll likely proceed with the translation -- there are calls to get 
core.async sync'ed up with the JVM version and tools.analyzer.* has to be 
there.

Thanks for pointing me to the feature expressions discussion.  That will be 
extremely useful, should it come to pass.  There are some interesting 
problems that I'm pretty sure haven't been considered yet.  The ClojureCLR 
lisp-reader requires an extension to symbol token lexing in order to 
accommodate the full range of type names in the CLR -- that will make some 
*.clj files written for ClojureCLR to be unreadable by other Clojure 
implementations even with feature expressions.  There are other 
considerations, but I'll pursue them in that discussion.

Thank you for offer to provide advice.  I'll be in touch as I move this 
forward.

-David


On Thursday, August 21, 2014 7:14:15 AM UTC-5, Nicola Mometto wrote:
>
>
> David, 
>
> I personally have no plans to port tools.analyzer.jvm to a 
> tools.analyzer.clr, not for disinterest but simply because I don't know 
> anything about the .NET platform nor about clojureCLR. 
>
> That said, it shouldn't be hard to port it at all, the main file to port 
> would be 
>
> https://github.com/clojure/tools.analyzer.jvm/blob/master/src/main/clojure/clojure/tools/analyzer/jvm/utils.clj
>  
> which contains most of the functions that deal with reflection on t.a.jvm, 
> everything else should just be a matter of replacing class names from 
> java.lang.* to their CLR counterpart. 
>
> The only issue with all this, is that ATM tools.analyzer itself can only 
> run on clojure on the JVM because of 
>
> https://github.com/clojure/tools.analyzer/blob/master/src/main/clojure/clojure/tools/analyzer/utils.clj#L67-L70
>  
>
> My suggestion would be to wait for clojure 1.7 which should have support 
> for feature expressions and would make it possible for tools.analyzer to 
> be source compatible with clojureCLR too (all the code except for that 
> line is pure clojure, there are a bunch of instance checks for 
> clojure.lang.* types but it's my understanding that clojureCLR maintains 
> that class hierarchy). 
>
> A relevant ticket that might add a pattern? function to core that would 
> solve this is http://dev.clojure.org/jira/browse/CLJ-1298 
>
> In any case, if you want to go ahead and start porting t.a.jvm to 
> t.a.clr until we wait for 1.7 and feature-expressions or `c.c/pattern?`, 
> feel free to contact me privately and we can discuss this further. 
>
> Thanks, 
> Nicola 
>
> dmiller writes: 
>
> > Nicola, 
> > 
> > Excellent work! 
> > 
> > Looking forward to seeing tools.analyzer.clr in the near future. :) 
> > 
> > Well, actually, seriously, with the use of tools.analyzer.* in critical 
> > projects such as core.async, a port of tools.analyzer.jvm seems 
> necessary. 
> >   Unless you know of plans to make a port, I'll add it to my queue.  Any 
> > hints/suggestions/comments you can offer will be received 
> appreciatively. 
> > 
>

-- 
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: Is Clojure a language for growth?

2014-08-21 Thread Kalina Todorova
>> If a company wants to be able to hire staff and get them up to speed, as
>> well as have options for bringing in contractors and outsourcing some work,
>> is Clojure a good choice?
>>
>
> My friend works in a project which is being rewritten from Rails to
> Clojure (due to usual scaling problems with Rails). They don't have hiring
> problems. However, they are not looking for Clojure devs but devs who want
> to learn Clojure - and they don't have any problems with that. Usually,
> each new developer is able to code in Clojure after one month. Of course,
> every new team member has to read a book or two after hours and requires
> some mentoring from other members in a team.
>
>

Somewhat right but what about the people that are mentoring them, the
clojure community is not big therefore is hard to find really experienced
developers if some of the experience ones start to quit there is quite
lower possibility for the owner to find somebody to replace them and the
company becomes kinda more depended on the 'good-will' of the developers


>
We've had trouble finding Clojure devs, and others have complained of how
> hard it is to learn Clojure and read the code from open source projects,
> especially for those with backgrounds in languages like C++.
>
>
Clojure is as hard to learn as any other language. People who complain
>> about strange grammar (those bloody brackets) or a few new concepts in the
>> language won't be a good buy for a fast-growing company.
>>
>
There is big difference between OOP and functional programming and if one
is coming straight from Java or other OOP without any background in
functional programming it is really hard to break some of this OOP mind-set
and it takes time to get used to. I would agree that a person understanding
the concept of functional programming can pickup quite quickly the lisp
syntax and it will probably take about a month for him to be production
ready but if he is totally new to the concepts I believe that it could take
maybe more like 3 months.


I'm really looking for arguments that will help me persuade my boss that
>> the risk of starting our next project in Clojure is one worth taking.
>>
>
What we did last year were 2 things: participate in ClojureCup so you can
show that you can provide fast value in Clojure and make some small prove
of concept project



Kalina




On Thu, Aug 21, 2014 at 4:35 PM, Jan Ziniewicz 
wrote:

>
>> If a company wants to be able to hire staff and get them up to speed, as
>> well as have options for bringing in contractors and outsourcing some work,
>> is Clojure a good choice?
>>
>
> My friend works in a project which is being rewritten from Rails to
> Clojure (due to usual scaling problems with Rails). They don't have hiring
> problems. However, they are not looking for Clojure devs but devs who want
> to learn Clojure - and they don't have any problems with that. Usually,
> each new developer is able to code in Clojure after one month. Of course,
> every new team member has to read a book or two after hours and requires
> some mentoring from other members in a team.
>
>
>>
>> We've had trouble finding Clojure devs, and others have complained of how
>> hard it is to learn Clojure and read the code from open source projects,
>> especially for those with backgrounds in languages like C++.
>>
>
> Clojure is as hard to learn as any other language. People who complain
> about strange grammar (those bloody brackets) or a few new concepts in the
> language won't be a good buy for a fast-growing company.
>
>
>
>> I'm really looking for arguments that will help me persuade my boss that
>> the risk of starting our next project in Clojure is one worth taking.
>>
>>
> I had the same problem with Scala a few years ago. Persuade you boss to
> start with very small project. Make it awesome, show it to your team and
> remember - you 'll have only one chance. If you fail - they won't allow you
> to use Clojure again :)
>
> --
> 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.
>



-- 

 Best regards | Med venlig hilsen,

 Kalina Todorova
T: 0045 52 64 93 73
E: ad...@ki6i.com

Trongårdsvej 46, 1
2800 Lyngby
  
  

-- 
You received this message because you are subscribed to th

Re: Is Clojure a language for growth?

2014-08-21 Thread Jan Ziniewicz

>
>
> If a company wants to be able to hire staff and get them up to speed, as 
> well as have options for bringing in contractors and outsourcing some work, 
> is Clojure a good choice?
>

My friend works in a project which is being rewritten from Rails to Clojure 
(due to usual scaling problems with Rails). They don't have hiring 
problems. However, they are not looking for Clojure devs but devs who want 
to learn Clojure - and they don't have any problems with that. Usually, 
each new developer is able to code in Clojure after one month. Of course, 
every new team member has to read a book or two after hours and requires 
some mentoring from other members in a team. 
 

>
> We've had trouble finding Clojure devs, and others have complained of how 
> hard it is to learn Clojure and read the code from open source projects, 
> especially for those with backgrounds in languages like C++.
>

Clojure is as hard to learn as any other language. People who complain 
about strange grammar (those bloody brackets) or a few new concepts in the 
language won't be a good buy for a fast-growing company.

 

> I'm really looking for arguments that will help me persuade my boss that 
> the risk of starting our next project in Clojure is one worth taking.
>
>
I had the same problem with Scala a few years ago. Persuade you boss to 
start with very small project. Make it awesome, show it to your team and 
remember - you 'll have only one chance. If you fail - they won't allow you 
to use Clojure again :)

-- 
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: Presentation about Clojure

2014-08-21 Thread David Powell
For me the most practical benefit of Clojure is how easy it makes
combining, transforming, and processing data from various sources.
Just as SQL is better for querying a relational database than writing
a load of imperative for-loops; Clojure's functional transformations
of immutable data are far more productive, concise, and reusable than
writing the equivalent imperative code in your application.


On Thu, Aug 21, 2014 at 11:06 AM, Cecil Westerhof
 wrote:
> I am far from an expert on Clojure, but I am thinking about giving a talk
> about it on an Open Source event.
>
> Any tips about what to treat and what not to treat?
>
> I will have about 45 minutes.
>
> --
> Cecil Westerhof
>
> --
> 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: Presentation about Clojure

2014-08-21 Thread Ashton Kemerling
Whenever I try and sell Clojure, I sell four things:


   1. JVM based deploy and performance.
   2. A complete state model for safe and easy concurrency
   3. Macros to eliminate boilerplate and add features otherwise impossible
   4. An ecosystem of decoupled libraries that take a "no magic" approach,
   meaning fewer nasty surprises at update time.

Beyond that I would point out how leiningen just works, and do some
examples.

--
Ashton Kemerling


On Thu, Aug 21, 2014 at 6:32 AM, Serzh Nechyporchuk 
wrote:

>  ​Good idea, I am always a more technical person, but your way will be
>> more productive.
>> It is a two day event. I could ask if it would be possible to give it on
>> the first day and have the option to give a hands-on the second day if
>> there is interest for that.
>
>
> I also had a second talk too. In it I show production examples of using
> clojure and repl-driven development. So it will be very nice if you have
> time for a second talk too.
>
> You are welcome :)
>
> Четвер, 21 серпня 2014 р. 14:56:00 UTC+3 користувач Cecil Westerhof
> написав:
>>
>> 2014-08-21 13:43 GMT+02:00 Serzh Nechyporchuk :
>>
>> You can use this presentation as your own :)
>>>
>>
>> ​I probably will change some things (but reading the rest of your email
>> less as I expected), but will certainly at least mention it is inspired on
>> your presentation. Credit where credit is due.
>> I want to show the REPL (I find that a very big plus) and maybe something
>> about the ease to develop for the Android. I have not tried it yet, but as
>> I was told it is a breeze. If that is true, it is certainly something to
>> mention.
>>
>> ​
>>
>>
>>> The auditory I was talked to consists of:
>>> - several java
>>> - one clojure :)
>>> - rest python developers.
>>> In this presentation I intentionally don't focus on syntax and other
>>> "getting started" features. I think that this is less important and it is
>>> really easy to get in.
>>> The goal of this talk was not to teach write hello world programs. What
>>> I really focused on in this talk is power that clojure gives you.
>>>
>>
>> ​Good idea, I am always a more technical person, but your way will be
>> more productive.
>> It is a two day event. I could ask if it would be possible to give it on
>> the first day and have the option to give a hands-on the second day if
>> there is interest for that.
>>
>>
>>
>>> The presentation took about 45 minutes. But with questions it took about
>>> one hour.
>>>
>>
>> ​Should be doable then.
>>
>> Thanks again.​
>>
>> ​I am flabbergasted how useful this newsgroup is.​ :-D
>>
>>
>>
>>> 2014-08-21 14:26 GMT+03:00 Cecil Westerhof :
>>>
 2014-08-21 12:49 GMT+02:00 Serzh Nechyporchuk :

 In most programming languages cool features are provided as core
> functionality and you can't extend it manually. But in lisp you can do it
> just as library.
> For example:
> - Go channels - core.async
> - logic programming - core.logic
>
> Link to presentation https://docs.google.com/presentation/d/
> 1ewQYugwi9mBdogWMLGQM74uadrI-jw4Kf3Tasxve_bs/edit?usp=sharing
>

 ​Thank you very much. You have almost done all the work for me. ;-)

 I suppose that the people you gave this presentation to already knew
 something?
 How much time did your presentation take?​



>
> 2014-08-21 13:39 GMT+03:00 Cecil Westerhof :
>
>>
>> 2014-08-21 12:33 GMT+02:00 Serzh Nechyporchuk :
>>
>> I can give you my presentation about Clojure. I have several
>>> questions:
>>>
>>> - (classic) parenthesis
>>> - How do you model your domain without objects?
>>> - About dsl. If clojure is good for dsl, does it mean that when you
>>> get new librarty with its own dsl, you have to learn new language?
>>> - How does new people adopts in your command?
>>> - What is production use of Clojure?
>>>
>>> That's all I remember.
>>>
>>
>> ​Thanks: that is very useful.
>>
>
>> --
>> Cecil Westerhof
>>
>  --
> 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: IllegalStateException Attempting to call unbound fn

2014-08-21 Thread Serzh Nechyporchuk
This code works fine for me. Did you try to reload repl?


2014-08-21 16:29 GMT+03:00 gvim :

> On 21/08/2014 09:39, Serzh Nechyporchuk wrote:
>
>> Can you put all file that you try to load?
>>
>
> Here it is. Just bits and pieces for practice:
>
> (ns gh1.core)
>
> (defn foo
>   "I don't do a whole lot."
>   [x]
>   (println x "Hello, World!"))
>
> (foo "Garry")
>
> (doseq [x [1 2 3 4 5]
> y [11 22 33 44 55]]
> (prn (* x y)))
>
>
>
> (defn mp [] (map #(+ % 5) [1 2 3 4 5]))
>
> (map #(+ % 5) [1 2 3 4 5])
>
> (prn-str {:a 1 :b 2 :c 3})
>
> (defn fill-queue [filler-func]
>   (let [q (LinkedBlockingQueue. 10)
> fill (fn fill [x]
>(if (.offer q x 1 TimeUnit/SECONDS)
>  x
>  (recur x)))
> f (future (filler-func fill) nil)]
> ((fn drain []
>(lazy-seq
> (let [x (.take q)]
>   (cons x (drain
>
>
>
> (defmacro ints [& args]
>
>   (assert (every? integer? args))
>   (vec args))
>
> (defn fints [& args]
>   (assert (every? integer? args))
>   (vec args))
>
> (defn testf [x]
>   (fints x))
>
> (testf 42)
>
> --
> 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.
>



-- 
Best regards,
Serhii Nechyporchuk

-- 
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: IllegalStateException Attempting to call unbound fn

2014-08-21 Thread gvim

On 21/08/2014 09:39, Serzh Nechyporchuk wrote:

Can you put all file that you try to load?


Here it is. Just bits and pieces for practice:

(ns gh1.core)

(defn foo
  "I don't do a whole lot."
  [x]
  (println x "Hello, World!"))

(foo "Garry")

(doseq [x [1 2 3 4 5]
y [11 22 33 44 55]]
(prn (* x y)))



(defn mp [] (map #(+ % 5) [1 2 3 4 5]))

(map #(+ % 5) [1 2 3 4 5])

(prn-str {:a 1 :b 2 :c 3})

(defn fill-queue [filler-func]
  (let [q (LinkedBlockingQueue. 10)
fill (fn fill [x]
   (if (.offer q x 1 TimeUnit/SECONDS)
 x
 (recur x)))
f (future (filler-func fill) nil)]
((fn drain []
   (lazy-seq
(let [x (.take q)]
  (cons x (drain



(defmacro ints [& args]
  (assert (every? integer? args))
  (vec args))

(defn fints [& args]
  (assert (every? integer? args))
  (vec args))

(defn testf [x]
  (fints x))

(testf 42)

--
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: Is Clojure a language for growth?

2014-08-21 Thread Magnus Therning
On Wed, Aug 20, 2014 at 03:37:40AM -0700, aboy021 wrote:
> Is Clojure a suitable language for a company that needs to grow
> quickly?
> 
> If a company wants to be able to hire staff and get them up to
> speed, as well as have options for bringing in contractors and
> outsourcing some work, is Clojure a good choice?
> 
> We've had trouble finding Clojure devs, and others have complained
> of how hard it is to learn Clojure and read the code from open
> source projects, especially for those with backgrounds in languages
> like C++.
> 
> I think Clojure should be a good fit for us because it is
> expressive, flexible, and we are still discovering new aspects of
> the problem domain.  I'm biased on this because I really enjoy
> Clojure at home, and want to use it commercially.
> 
> I'm really looking for arguments that will help me persuade my boss
> that the risk of starting our next project in Clojure is one worth
> taking.
> 
> Thanks for any suggestions.

Personally I'd stop looking at a specific language for implementation,
and instead look at the architecture of the system.  Concentrate on
loose coupling and finding a good technology for the interop of the
various parts.  If the problem allows it you'll end up with a
situation where the implementation language of each part matters very
little, and then you simply choose the language best suited for each.

/M

-- 
Magnus Therning  OpenPGP: 0xAB4DFBA4 
email: mag...@therning.org   jabber: mag...@therning.org
twitter: magthe   http://therning.org/magnus

Perl is another example of filling a tiny, short-term need, and then
being a real problem in the longer term.
 -- Alan Kay


pgpEFLXvKDffL.pgp
Description: PGP signature


Re: [ClojureScript] DevArt Co(de)Factory open source release

2014-08-21 Thread Dylan Butman
This is really awesome Karsten!

I first got obsessed with programming writing particle systems in processing 
with toxiclibs. Thanks for all your work! Will definitely be digging deep into 
this one. 

-- 
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: Presentation about Clojure

2014-08-21 Thread Serzh Nechyporchuk

>
> ​Good idea, I am always a more technical person, but your way will be more 
> productive.
> It is a two day event. I could ask if it would be possible to give it on 
> the first day and have the option to give a hands-on the second day if 
> there is interest for that.

 
I also had a second talk too. In it I show production examples of using 
clojure and repl-driven development. So it will be very nice if you have 
time for a second talk too.

You are welcome :)

Четвер, 21 серпня 2014 р. 14:56:00 UTC+3 користувач Cecil Westerhof написав:
>
> 2014-08-21 13:43 GMT+02:00 Serzh Nechyporchuk  >:
>
>> You can use this presentation as your own :)
>>
>
> ​I probably will change some things (but reading the rest of your email 
> less as I expected), but will certainly at least mention it is inspired on 
> your presentation. Credit where credit is due.
> I want to show the REPL (I find that a very big plus) and maybe something 
> about the ease to develop for the Android. I have not tried it yet, but as 
> I was told it is a breeze. If that is true, it is certainly something to 
> mention.
>
> ​
>  
>
>> The auditory I was talked to consists of:
>> - several java
>> - one clojure :) 
>> - rest python developers.
>> In this presentation I intentionally don't focus on syntax and other 
>> "getting started" features. I think that this is less important and it is 
>> really easy to get in.
>> The goal of this talk was not to teach write hello world programs. What I 
>> really focused on in this talk is power that clojure gives you. 
>>
>
> ​Good idea, I am always a more technical person, but your way will be more 
> productive.
> It is a two day event. I could ask if it would be possible to give it on 
> the first day and have the option to give a hands-on the second day if 
> there is interest for that.
>
>  
>
>> The presentation took about 45 minutes. But with questions it took about 
>> one hour.
>>
>
> ​Should be doable then.
>
> Thanks again.​
>  
> ​I am flabbergasted how useful this newsgroup is.​ :-D
>  
>  
>
>> 2014-08-21 14:26 GMT+03:00 Cecil Westerhof > >:
>>
>>> 2014-08-21 12:49 GMT+02:00 Serzh Nechyporchuk >> >:
>>>
>>> In most programming languages cool features are provided as core 
 functionality and you can't extend it manually. But in lisp you can do it 
 just as library.
 For example:
 - Go channels - core.async
 - logic programming - core.logic

 Link to presentation 
 https://docs.google.com/presentation/d/1ewQYugwi9mBdogWMLGQM74uadrI-jw4Kf3Tasxve_bs/edit?usp=sharing

>>>
>>> ​Thank you very much. You have almost done all the work for me. ;-)
>>>
>>> I suppose that the people you gave this presentation to already knew 
>>> something?
>>> How much time did your presentation take?​
>>>  
>>>  
>>>

 2014-08-21 13:39 GMT+03:00 Cecil Westerhof >>> >:

>
> 2014-08-21 12:33 GMT+02:00 Serzh Nechyporchuk  >:
>
> I can give you my presentation about Clojure. I have several questions:
>>
>> - (classic) parenthesis
>> - How do you model your domain without objects?
>> - About dsl. If clojure is good for dsl, does it mean that when you 
>> get new librarty with its own dsl, you have to learn new language?
>> - How does new people adopts in your command?
>> - What is production use of Clojure?
>>
>> That's all I remember.
>>
>
> ​Thanks: that is very useful.
>

> -- 
> Cecil Westerhof 
>

-- 
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: tools.analyzer[.js/.jvm], tools.emitter.jvm, status report

2014-08-21 Thread Nicola Mometto

David,

I personally have no plans to port tools.analyzer.jvm to a
tools.analyzer.clr, not for disinterest but simply because I don't know
anything about the .NET platform nor about clojureCLR.

That said, it shouldn't be hard to port it at all, the main file to port
would be
https://github.com/clojure/tools.analyzer.jvm/blob/master/src/main/clojure/clojure/tools/analyzer/jvm/utils.clj
which contains most of the functions that deal with reflection on t.a.jvm,
everything else should just be a matter of replacing class names from
java.lang.* to their CLR counterpart.

The only issue with all this, is that ATM tools.analyzer itself can only
run on clojure on the JVM because of
https://github.com/clojure/tools.analyzer/blob/master/src/main/clojure/clojure/tools/analyzer/utils.clj#L67-L70

My suggestion would be to wait for clojure 1.7 which should have support
for feature expressions and would make it possible for tools.analyzer to
be source compatible with clojureCLR too (all the code except for that
line is pure clojure, there are a bunch of instance checks for
clojure.lang.* types but it's my understanding that clojureCLR maintains
that class hierarchy).

A relevant ticket that might add a pattern? function to core that would
solve this is http://dev.clojure.org/jira/browse/CLJ-1298

In any case, if you want to go ahead and start porting t.a.jvm to
t.a.clr until we wait for 1.7 and feature-expressions or `c.c/pattern?`,
feel free to contact me privately and we can discuss this further.

Thanks,
Nicola

dmiller writes:

> Nicola,
>
> Excellent work!
>
> Looking forward to seeing tools.analyzer.clr in the near future. :)
>
> Well, actually, seriously, with the use of tools.analyzer.* in critical
> projects such as core.async, a port of tools.analyzer.jvm seems necessary.
>   Unless you know of plans to make a port, I'll add it to my queue.  Any
> hints/suggestions/comments you can offer will be received appreciatively.
>

-- 
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: Presentation about Clojure

2014-08-21 Thread Cecil Westerhof
2014-08-21 13:43 GMT+02:00 Serzh Nechyporchuk :

> You can use this presentation as your own :)
>

​I probably will change some things (but reading the rest of your email
less as I expected), but will certainly at least mention it is inspired on
your presentation. Credit where credit is due.
I want to show the REPL (I find that a very big plus) and maybe something
about the ease to develop for the Android. I have not tried it yet, but as
I was told it is a breeze. If that is true, it is certainly something to
mention.

​


> The auditory I was talked to consists of:
> - several java
> - one clojure :)
> - rest python developers.
> In this presentation I intentionally don't focus on syntax and other
> "getting started" features. I think that this is less important and it is
> really easy to get in.
> The goal of this talk was not to teach write hello world programs. What I
> really focused on in this talk is power that clojure gives you.
>

​Good idea, I am always a more technical person, but your way will be more
productive.
It is a two day event. I could ask if it would be possible to give it on
the first day and have the option to give a hands-on the second day if
there is interest for that.



> The presentation took about 45 minutes. But with questions it took about
> one hour.
>

​Should be doable then.

Thanks again.​

​I am flabbergasted how useful this newsgroup is.​ :-D



> 2014-08-21 14:26 GMT+03:00 Cecil Westerhof :
>
>> 2014-08-21 12:49 GMT+02:00 Serzh Nechyporchuk :
>>
>> In most programming languages cool features are provided as core
>>> functionality and you can't extend it manually. But in lisp you can do it
>>> just as library.
>>> For example:
>>> - Go channels - core.async
>>> - logic programming - core.logic
>>>
>>> Link to presentation
>>> https://docs.google.com/presentation/d/1ewQYugwi9mBdogWMLGQM74uadrI-jw4Kf3Tasxve_bs/edit?usp=sharing
>>>
>>
>> ​Thank you very much. You have almost done all the work for me. ;-)
>>
>> I suppose that the people you gave this presentation to already knew
>> something?
>> How much time did your presentation take?​
>>
>>
>>
>>>
>>> 2014-08-21 13:39 GMT+03:00 Cecil Westerhof :
>>>

 2014-08-21 12:33 GMT+02:00 Serzh Nechyporchuk :

 I can give you my presentation about Clojure. I have several questions:
>
> - (classic) parenthesis
> - How do you model your domain without objects?
> - About dsl. If clojure is good for dsl, does it mean that when you
> get new librarty with its own dsl, you have to learn new language?
> - How does new people adopts in your command?
> - What is production use of Clojure?
>
> That's all I remember.
>

 ​Thanks: that is very useful.

>>>
-- 
Cecil Westerhof

-- 
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: Presentation about Clojure

2014-08-21 Thread Serzh Nechyporchuk
You can use this presentation as your own :)
The auditory I was talked to consists of:
- several java
- one clojure :)
- rest python developers.
In this presentation I intentionally don't focus on syntax and other
"getting started" features. I think that this is less important and it is
really easy to get in.
The goal of this talk was not to teach write hello world programs. What I
really focused on in this talk is power that clojure gives you.

The presentation took about 45 minutes. But with questions it took about
one hour.


2014-08-21 14:26 GMT+03:00 Cecil Westerhof :

> 2014-08-21 12:49 GMT+02:00 Serzh Nechyporchuk :
>
> In most programming languages cool features are provided as core
>> functionality and you can't extend it manually. But in lisp you can do it
>> just as library.
>> For example:
>> - Go channels - core.async
>> - logic programming - core.logic
>>
>> Link to presentation
>> https://docs.google.com/presentation/d/1ewQYugwi9mBdogWMLGQM74uadrI-jw4Kf3Tasxve_bs/edit?usp=sharing
>>
>
> ​Thank you very much. You have almost done all the work for me. ;-)
>
> I suppose that the people you gave this presentation to already knew
> something?
> How much time did your presentation take?​
>
>
>
>>
>> 2014-08-21 13:39 GMT+03:00 Cecil Westerhof :
>>
>>>
>>> 2014-08-21 12:33 GMT+02:00 Serzh Nechyporchuk :
>>>
>>> I can give you my presentation about Clojure. I have several questions:

 - (classic) parenthesis
 - How do you model your domain without objects?
 - About dsl. If clojure is good for dsl, does it mean that when you get
 new librarty with its own dsl, you have to learn new language?
 - How does new people adopts in your command?
 - What is production use of Clojure?

 That's all I remember.

>>>
>>> ​Thanks: that is very useful.
>>>
>>
> --
> Cecil Westerhof
>
> --
> 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.
>



-- 
Best regards,
Serhii Nechyporchuk

-- 
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: Presentation about Clojure

2014-08-21 Thread Cecil Westerhof
2014-08-21 12:49 GMT+02:00 Serzh Nechyporchuk :

> In most programming languages cool features are provided as core
> functionality and you can't extend it manually. But in lisp you can do it
> just as library.
> For example:
> - Go channels - core.async
> - logic programming - core.logic
>
> Link to presentation
> https://docs.google.com/presentation/d/1ewQYugwi9mBdogWMLGQM74uadrI-jw4Kf3Tasxve_bs/edit?usp=sharing
>

​Thank you very much. You have almost done all the work for me. ;-)

I suppose that the people you gave this presentation to already knew
something?
How much time did your presentation take?​



>
> 2014-08-21 13:39 GMT+03:00 Cecil Westerhof :
>
>>
>> 2014-08-21 12:33 GMT+02:00 Serzh Nechyporchuk :
>>
>> I can give you my presentation about Clojure. I have several questions:
>>>
>>> - (classic) parenthesis
>>> - How do you model your domain without objects?
>>> - About dsl. If clojure is good for dsl, does it mean that when you get
>>> new librarty with its own dsl, you have to learn new language?
>>> - How does new people adopts in your command?
>>> - What is production use of Clojure?
>>>
>>> That's all I remember.
>>>
>>
>> ​Thanks: that is very useful.
>>
>
-- 
Cecil Westerhof

-- 
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: Presentation about Clojure

2014-08-21 Thread Serzh Nechyporchuk
In most programming languages cool features are provided as core
functionality and you can't extend it manually. But in lisp you can do it
just as library.
For example:
- Go channels - core.async
- logic programming - core.logic

Link to presentation
https://docs.google.com/presentation/d/1ewQYugwi9mBdogWMLGQM74uadrI-jw4Kf3Tasxve_bs/edit?usp=sharing


2014-08-21 13:39 GMT+03:00 Cecil Westerhof :

>
> 2014-08-21 12:33 GMT+02:00 Serzh Nechyporchuk :
>
> I can give you my presentation about Clojure. I have several questions:
>>
>> - (classic) parenthesis
>> - How do you model your domain without objects?
>> - About dsl. If clojure is good for dsl, does it mean that when you get
>> new librarty with its own dsl, you have to learn new language?
>> - How does new people adopts in your command?
>> - What is production use of Clojure?
>>
>> That's all I remember.
>>
>
> ​Thanks: that is very useful.
>
> --
> Cecil Westerhof
>
> --
> 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.
>



-- 
Best regards,
Serhii Nechyporchuk

-- 
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: Presentation about Clojure

2014-08-21 Thread Cecil Westerhof
2014-08-21 12:33 GMT+02:00 Serzh Nechyporchuk :

> I can give you my presentation about Clojure. I have several questions:
>
> - (classic) parenthesis
> - How do you model your domain without objects?
> - About dsl. If clojure is good for dsl, does it mean that when you get
> new librarty with its own dsl, you have to learn new language?
> - How does new people adopts in your command?
> - What is production use of Clojure?
>
> That's all I remember.
>

​Thanks: that is very useful.

-- 
Cecil Westerhof

-- 
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: Presentation about Clojure

2014-08-21 Thread Cecil Westerhof
2014-08-21 12:23 GMT+02:00 Serzh Nechyporchuk :

> Adding to previous answer, I think that you have to say about clojure
> macro power and
> ​​
> ​​
> lisp's programming paradigm as library. And also you have to mention about
> clojure polymorphism and how it solves expression problem.
>

​Thanks.​
What do you exactly mean with: ​lisp's programming paradigm as library.



>
> 2014-08-21 13:18 GMT+03:00 Kalina Todorova :
>
> Well if it is introduction to Clojure you can stick to the main things
>> about immutability, lists, concurrency, JVM, repl, interop
>>
>>
>> On Thu, Aug 21, 2014 at 12:06 PM, Cecil Westerhof > > wrote:
>>
>>> I am far from an expert on Clojure, but I am thinking about giving a
>>> talk about it on an Open Source event.
>>>
>>> Any tips about what to treat and what not to treat?
>>>
>>> I will have about 45 minutes.
>>>
>>
-- 
Cecil Westerhof

-- 
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: Presentation about Clojure

2014-08-21 Thread Serzh Nechyporchuk
I can give you my presentation about Clojure. I have several questions:

- (classic) parenthesis
- How do you model your domain without objects?
- About dsl. If clojure is good for dsl, does it mean that when you get new
librarty with its own dsl, you have to learn new language?
- How does new people adopts in your command?
- What is production use of Clojure?

That's all I remember.


2014-08-21 13:24 GMT+03:00 Cecil Westerhof :

> 2014-08-21 12:18 GMT+02:00 Kalina Todorova :
>
> Well if it is introduction to Clojure you can stick to the main things
>> about immutability, lists, concurrency, JVM, repl, interop
>>
>
> ​I could handle that. But can I fill three quarters of an hour with that?
>
> Also, is there someone who has done something like this? What are the
> questions to expect. Then I can prepare myself.​
>
>
>>
>>
>> On Thu, Aug 21, 2014 at 12:06 PM, Cecil Westerhof > > wrote:
>>
>>> I am far from an expert on Clojure, but I am thinking about giving a
>>> talk about it on an Open Source event.
>>>
>>> Any tips about what to treat and what not to treat?
>>>
>>> I will have about 45 minutes.
>>>
>>
> --
> Cecil Westerhof
>
> --
> 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.
>



-- 
Best regards,
Serhii Nechyporchuk

-- 
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: Presentation about Clojure

2014-08-21 Thread Cecil Westerhof
2014-08-21 12:18 GMT+02:00 Kalina Todorova :

> Well if it is introduction to Clojure you can stick to the main things
> about immutability, lists, concurrency, JVM, repl, interop
>

​I could handle that. But can I fill three quarters of an hour with that?

Also, is there someone who has done something like this? What are the
questions to expect. Then I can prepare myself.​


>
>
> On Thu, Aug 21, 2014 at 12:06 PM, Cecil Westerhof 
> wrote:
>
>> I am far from an expert on Clojure, but I am thinking about giving a talk
>> about it on an Open Source event.
>>
>> Any tips about what to treat and what not to treat?
>>
>> I will have about 45 minutes.
>>
>
-- 
Cecil Westerhof

-- 
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: Presentation about Clojure

2014-08-21 Thread Serzh Nechyporchuk
Adding to previous answer, I think that you have to say about clojure macro
power and lisp's programming paradigm as library. And also you have to
mention about clojure polymorphism and how it solves expression problem.


2014-08-21 13:18 GMT+03:00 Kalina Todorova :

> Well if it is introduction to Clojure you can stick to the main things
> about immutability, lists, concurrency, JVM, repl, interop
>
>
> On Thu, Aug 21, 2014 at 12:06 PM, Cecil Westerhof 
> wrote:
>
>> I am far from an expert on Clojure, but I am thinking about giving a talk
>> about it on an Open Source event.
>>
>> Any tips about what to treat and what not to treat?
>>
>> I will have about 45 minutes.
>>
>> --
>> Cecil Westerhof
>>
>> --
>> 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.
>>
>
>
>
> --
>
>  Best regards | Med venlig hilsen,
>
>  Kalina Todorova
> T: 0045 52 64 93 73
> E: ad...@ki6i.com
>
> Trongårdsvej 46, 1
> 2800 Lyngby
>   
>   
>
> --
> 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.
>



-- 
Best regards,
Serhii Nechyporchuk

-- 
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: Is Clojure a language for growth?

2014-08-21 Thread Luc Prefontaine
+1 same weakness + big fingers on
small iPhone keyboard :(
Urgent need for a second one...

We choose Clojure in 2008 strictly for efficiency.

In 2009 after being in prod, we were told that hiring would be a major problem.

We dealt with this noise by accepting the fact
that we will train people.

Why ?

Because we need 7 to 10 times less people.

Everything got simpler from design
to deployment.

We get people to learn by adding
tests. I can't stand TDD but I agree
that safeguards like automated tests
add value.

So let the newcomers do the boring
stuff while they learn :)

I think that there is a huge perception
problem. For some reason apparently in the industry complex systems = huge 
teams.

It looks to me more like a peeing contest more than anything else.
My team is bigger than yours, blablabla,

Like if bigger meant better

To me big teams are mostly a sign
of inefficiency except if you intend
to send men on the moon or
similar unusual goals.

Luc P.

> + Grammar. I should not write correspondence before having coffee.
> 
> On Thursday, August 21, 2014 9:31:42 AM UTC+2, Henrik Eneroth wrote:
> >
> > Sweden has some things going for it, and some not, as always. I think 
> > business overall is somewhat less cutthroat here than in the States, which 
> > is why it struck me that I might be making assumptions about what OP should 
> > or should not do out of ignorance of his situation. The scape goat 
> > reasoning really brought this home.
> >
> > At the two most recent places I've been (I'm a consultant, a UX designer), 
> > they've worked with autonomous teams. That is, the teams are themselves 
> > responsible for deciding how to solve a problem, sometimes including what 
> > programming language to use. One result of this seems to emerge (I only 
> > have a sample size of two) a microservice centered design and a general 
> > decoupling between the teams. 
> >
> > Also, it naturally seems to lead to a more heterogeneous environment, for 
> > good or for bad. This seems to be somewhat self-regulating however, as 
> > other most members of a team will protest if one member wants to write the 
> > new service in the Shakespearean Programming Language, for example. It also 
> > leads to the same kind of resistance to more sensible choices as well, like 
> > Clojure. But unlike SPL or Brainfuck, they actually have chance of being 
> > used if they show merit, probably by filling some niche role to begin with. 
> >
> > When I was with Spotify, I learned that they had snuck in some Clojure in 
> > one of the teams of the organization. No one has been fired yet, and 
> > everyone seems happy enough. Especially the people who now get to do at 
> > least *some* Clojure during their work day.
> >
> > Oh, and like Linus, I try to promote Clojure wherever I go. As a designer, 
> > I'd love to work with a team that uses Clojure. That is, a team that 
> > understands that incidental complexity eventually seeps out to for the user 
> > to deal with, and so on. Unfortunately, being framed as a designer means I 
> > have less natural authority when I say that Clojure is awesome. Although 
> > this is somewhat mitigated somewhat by the sheer shock of having a designer 
> > saying something comprehensible about a programming language.
> >
> > On Thursday, August 21, 2014 7:44:18 AM UTC+2, Quzanti wrote:
> >>
> >> "If an investor were kicking people out, its usually because money is 
> >> running low or for other more diffuse reasons. If an investor or boss 
> >> somewhere where kicking out people at random, he would quickly loose 
> >> respect from his other employeers. The rest would soon leave as well"
> >>
> >> Hence the need for a scapegoat. Generally if an investor can make 20% of 
> >> their startups work, people will blame the technologists for the failure 
> >> of 
> >> the other 80%, and the investor will have a PR machine to distort the 
> >> history if needed. But yes, startup hubs work best when there are angel 
> >> investors who want to build a personal reputation or where the 
> >> institutional investors have strong links with the universities producing 
> >> the start up talent and so don't want to jeopardise those (eg the Stanford 
> >> University system). Even the best VCs will shut down the majority of their 
> >> start ups though, so you'd think that would make people avoid them, but 
> >> there are always people out there who need money to try and realise their 
> >> dreams. 
> >>
> >> All a bit tangential to the the original thread question though, which 
> >> was assuming a high growth, high pressure, scale it up fast, need results 
> >> kind of culture, would Clojure be a good fit?
> >>
> >> On Wednesday, August 20, 2014 11:46:48 PM UTC+1, Linus Ericsson wrote:
> >>>
> >>> Well, for better or worse we don't like conflicts that much. This has 
> >>> benefits when it comes to some kinds of problem solving (the way to 
> >>> consensus in Swedish companies is worth at least a chapter in 

Re: Presentation about Clojure

2014-08-21 Thread Kalina Todorova
Well if it is introduction to Clojure you can stick to the main things
about immutability, lists, concurrency, JVM, repl, interop


On Thu, Aug 21, 2014 at 12:06 PM, Cecil Westerhof 
wrote:

> I am far from an expert on Clojure, but I am thinking about giving a talk
> about it on an Open Source event.
>
> Any tips about what to treat and what not to treat?
>
> I will have about 45 minutes.
>
> --
> Cecil Westerhof
>
> --
> 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.
>



-- 

 Best regards | Med venlig hilsen,

 Kalina Todorova
T: 0045 52 64 93 73
E: ad...@ki6i.com

Trongårdsvej 46, 1
2800 Lyngby
  
  

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


Presentation about Clojure

2014-08-21 Thread Cecil Westerhof
I am far from an expert on Clojure, but I am thinking about giving a talk
about it on an Open Source event.

Any tips about what to treat and what not to treat?

I will have about 45 minutes.

-- 
Cecil Westerhof

-- 
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: Is Clojure a language for growth?

2014-08-21 Thread Arthur Boyer
Thanks for all the great advice. I think it really reinforces another thing
I like about Clojure, that it has a wonderful community.

One idea that's come up several times is the notion that if we push Clojure
then any problems we have will get blamed on Clojure, and unfortunately
this rings true to me. At the same time, my boss is keen on choosing one
language and sticking with it, something I disagree with, and if we do that
it is unlikely that we'll get another chance to use Clojure in the
foreseeable future.

Beating the averages was a great essay, and one that encouraged me to learn
Clojure. I'll pass it on to my boss.

We're tending to focus on hiring smart people rather than people with a
particular set of programming skills. Ironically one of our interview
questions is around immutability, since we all agree that's crucial to
building great systems. I'm optimistic that once we have some enertia it
will be easy for smart devs to come on board and get up to speed with
Clojure.

I think the dev team is a good fit for Clojure, currently there are only
three of us (we're in a hiring phase), and two of us have used, and really
like, Clojure. Unfortunately the boss' experiences with C++ and to a lesser
extent Ruby seem to have made Clojure not a good fit for him. He's had a
play with Clojure, and completely turned against it after trying to write a
Sieve of Eratosthenes and creating something really, really slow. The boss
isn't going to be writing any code, but is very opinionated about what we
should be using, at this point he strongly favours Groovy. At least it's
not Java.

The Cognitect proof of concept idea is a good one, and in a different
situation, or different stage of the situation I'd go for it.

I've read quite a bit about the kind of microservice architectures being
used at places like Spotify, and I think it would be a good way for us to
go, but unfortunately at this stage we're a small core in a company that's
trying to grow quickly, so that kind of thing is further down the line.


On 20 August 2014 22:37, aboy021  wrote:

> Is Clojure a suitable language for a company that needs to grow quickly?
>
> If a company wants to be able to hire staff and get them up to speed, as
> well as have options for bringing in contractors and outsourcing some work,
> is Clojure a good choice?
>
> We've had trouble finding Clojure devs, and others have complained of how
> hard it is to learn Clojure and read the code from open source projects,
> especially for those with backgrounds in languages like C++.
>
> I think Clojure should be a good fit for us because it is expressive,
> flexible, and we are still discovering new aspects of the problem domain.
> I'm biased on this because I really enjoy Clojure at home, and want to use
> it commercially.
>
> I'm really looking for arguments that will help me persuade my boss that
> the risk of starting our next project in Clojure is one worth taking.
>
> Thanks for any suggestions.
>
> --
> 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/TfyA0qPIjmw/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.
>

-- 
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: IllegalStateException Attempting to call unbound fn

2014-08-21 Thread Serzh Nechyporchuk
Can you put all file that you try to load?

Четвер, 21 серпня 2014 р. 11:04:33 UTC+3 користувач g vim написав:
>
> I can't work out why this code produces an exception: 
>
> (defn fints [& args] 
>(assert (every? integer? args)) 
>(vec args)) 
>
> (defn testf [x] 
>(fints x)) 
>
> (testf 42) 
>
> IllegalStateException Attempting to call unbound fn: #'gh1.core/testf 
> clojure.lang.Var$Unbound.throwArity (Var.java:43) 
>
> gvim 
>

-- 
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: IllegalStateException Attempting to call unbound fn

2014-08-21 Thread Serzh Nechyporchuk
Can you put all file that you try to load?


2014-08-21 11:04 GMT+03:00 gvim :

> I can't work out why this code produces an exception:
>
> (defn fints [& args]
>   (assert (every? integer? args))
>   (vec args))
>
> (defn testf [x]
>   (fints x))
>
> (testf 42)
>
> IllegalStateException Attempting to call unbound fn: #'gh1.core/testf
> clojure.lang.Var$Unbound.throwArity (Var.java:43)
>
> gvim
>
> --
> 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.
>



-- 
Best regards,
Serhii Nechyporchuk

-- 
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: Weird data reader issue (clj-time)

2014-08-21 Thread dan . stone16321
Thats it! Thanks for the great explanation.

On Wednesday, August 20, 2014 5:55:18 PM UTC+1, Marshall 
Bockrath-Vandegrift wrote:
>
> What's your `print-dup` for instants print them as?  The way compilation 
> for these expressions is going to work is:
>
> (a) The initial form will be read using the configured *data-readers*, 
> handing the compiler a form with a literal instance object.
> (b) The compiler will generate code to create that literal; when the 
> literal value isn't of a type the compiler knows how to emit directly, it 
> emits code to round-trip back through the reader at run-time, embedding the 
> `print-dup` representation of the object as a string.
>
> If `print-dup` prints in such a way as to discard the offset, away it goes.
>
> -Marshall
>
> On Wednesday, August 20, 2014 10:29:15 AM UTC-4, dan.sto...@gmail.com 
> wrote:
>>
>> Maybe I am missing something obvious - 
>>
>> I am using custom data readers for joda-time instants. time/inst strings 
>> are coerced into utc date times, time/insto keep the offset around. 
>>
>> Using the exact same function to parse the string via the data-reader, 
>> and just calling the function - I get different results. The function is 
>> pure... 
>>
>> *data-readers*
>> => {time/insto (var corp-pure.time/parse-with-offset), 
>>   time/inst (var corp-pure.time/parse)}
>>
>> (.getChronology (corp-pure-time/parse-with-offset 
>> "2014-05-03T23:00:00+0100"))
>> (.getChronology #time/insto "2014-05-03T23:00:00+0100")
>>
>> => #
>> => #
>>
>> To prove there are no obvious side-effects here:
>>
>> (.getChronology (corp-pure.time/parse-with-offset 
>> "2014-05-03T23:00:00+0100"))
>> (.getChronology (corp-pure.time/parse-with-offset 
>> "2014-05-03T23:00:00+0100"))
>>
>> => #
>> => #
>>
>> (.getChronology #time/insto "2014-05-03T23:00:00+0100")
>> (.getChronology #time/insto "2014-05-03T23:00:00+0100")
>>
>> => #
>> => #
>>
>> Has anyone seen anything like this?
>>
>

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


IllegalStateException Attempting to call unbound fn

2014-08-21 Thread gvim

I can't work out why this code produces an exception:

(defn fints [& args]
  (assert (every? integer? args))
  (vec args))

(defn testf [x]
  (fints x))

(testf 42)

IllegalStateException Attempting to call unbound fn: #'gh1.core/testf 
clojure.lang.Var$Unbound.throwArity (Var.java:43)


gvim

--
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: Is Clojure a language for growth?

2014-08-21 Thread Henrik Eneroth
+ Grammar. I should not write correspondence before having coffee.

On Thursday, August 21, 2014 9:31:42 AM UTC+2, Henrik Eneroth wrote:
>
> Sweden has some things going for it, and some not, as always. I think 
> business overall is somewhat less cutthroat here than in the States, which 
> is why it struck me that I might be making assumptions about what OP should 
> or should not do out of ignorance of his situation. The scape goat 
> reasoning really brought this home.
>
> At the two most recent places I've been (I'm a consultant, a UX designer), 
> they've worked with autonomous teams. That is, the teams are themselves 
> responsible for deciding how to solve a problem, sometimes including what 
> programming language to use. One result of this seems to emerge (I only 
> have a sample size of two) a microservice centered design and a general 
> decoupling between the teams. 
>
> Also, it naturally seems to lead to a more heterogeneous environment, for 
> good or for bad. This seems to be somewhat self-regulating however, as 
> other most members of a team will protest if one member wants to write the 
> new service in the Shakespearean Programming Language, for example. It also 
> leads to the same kind of resistance to more sensible choices as well, like 
> Clojure. But unlike SPL or Brainfuck, they actually have chance of being 
> used if they show merit, probably by filling some niche role to begin with. 
>
> When I was with Spotify, I learned that they had snuck in some Clojure in 
> one of the teams of the organization. No one has been fired yet, and 
> everyone seems happy enough. Especially the people who now get to do at 
> least *some* Clojure during their work day.
>
> Oh, and like Linus, I try to promote Clojure wherever I go. As a designer, 
> I'd love to work with a team that uses Clojure. That is, a team that 
> understands that incidental complexity eventually seeps out to for the user 
> to deal with, and so on. Unfortunately, being framed as a designer means I 
> have less natural authority when I say that Clojure is awesome. Although 
> this is somewhat mitigated somewhat by the sheer shock of having a designer 
> saying something comprehensible about a programming language.
>
> On Thursday, August 21, 2014 7:44:18 AM UTC+2, Quzanti wrote:
>>
>> "If an investor were kicking people out, its usually because money is 
>> running low or for other more diffuse reasons. If an investor or boss 
>> somewhere where kicking out people at random, he would quickly loose 
>> respect from his other employeers. The rest would soon leave as well."
>>
>> Hence the need for a scapegoat. Generally if an investor can make 20% of 
>> their startups work, people will blame the technologists for the failure of 
>> the other 80%, and the investor will have a PR machine to distort the 
>> history if needed. But yes, startup hubs work best when there are angel 
>> investors who want to build a personal reputation or where the 
>> institutional investors have strong links with the universities producing 
>> the start up talent and so don't want to jeopardise those (eg the Stanford 
>> University system). Even the best VCs will shut down the majority of their 
>> start ups though, so you'd think that would make people avoid them, but 
>> there are always people out there who need money to try and realise their 
>> dreams. 
>>
>> All a bit tangential to the the original thread question though, which 
>> was assuming a high growth, high pressure, scale it up fast, need results 
>> kind of culture, would Clojure be a good fit?
>>
>> On Wednesday, August 20, 2014 11:46:48 PM UTC+1, Linus Ericsson wrote:
>>>
>>> Well, for better or worse we don't like conflicts that much. This has 
>>> benefits when it comes to some kinds of problem solving (the way to 
>>> consensus in Swedish companies is worth at least a chapter in a big book 
>>> about antrophology). This shyness for open conflicts can lead to stagnation.
>>>
>>> This means that status quo is not turned over that easily, but when it 
>>> does, it happens like an avalanche (cow oscillator comes to mind). 
>>> Stockholm University has Clojure and Erlang in its second year curriculum 
>>> for computer science. Just saying.
>>>
>>> Apart from that, its 3kloc database queries and Java classes galore and 
>>> Wordpress shops all over, like everywhere else. The single larges group 
>>> of workers in Stockholm is of course computer programmer. 33000 people out 
>>> of a million of so.
>>>
>>> If an investor were kicking people out, its usually because money is 
>>> running low or for other more diffuse reasons. If an investor or boss 
>>> somewhere where kicking out people at random, he would quickly loose 
>>> respect from his other employeers. The rest would soon leave as well.
>>>
>>> "In Sweden we have a system..." the ironic saying goes, but the truth is 
>>> that even though the housing situation is outright catastrophic, you would 
>>> not ever be put on the stree

Re: Is Clojure a language for growth?

2014-08-21 Thread Henrik Eneroth
Sweden has some things going for it, and some not, as always. I think 
business overall is somewhat less cutthroat here than in the States, which 
is why it struck me that I might be making assumptions about what OP should 
or should not do out of ignorance of his situation. The scape goat 
reasoning really brought this home.

At the two most recent places I've been (I'm a consultant, a UX designer), 
they've worked with autonomous teams. That is, the teams are themselves 
responsible for deciding how to solve a problem, sometimes including what 
programming language to use. One result of this seems to emerge (I only 
have a sample size of two) a microservice centered design and a general 
decoupling between the teams. 

Also, it naturally seems to lead to a more heterogeneous environment, for 
good or for bad. This seems to be somewhat self-regulating however, as 
other most members of a team will protest if one member wants to write the 
new service in the Shakespearean Programming Language, for example. It also 
leads to the same kind of resistance to more sensible choices as well, like 
Clojure. But unlike SPL or Brainfuck, they actually have chance of being 
used if they show merit, probably by filling some niche role to begin with. 

When I was with Spotify, I learned that they had snuck in some Clojure in 
one of the teams of the organization. No one has been fired yet, and 
everyone seems happy enough. Especially the people who now get to do at 
least *some* Clojure during their work day.

Oh, and like Linus, I try to promote Clojure wherever I go. As a designer, 
I'd love to work with a team that uses Clojure. That is, a team that 
understands that incidental complexity eventually seeps out to for the user 
to deal with, and so on. Unfortunately, being framed as a designer means I 
have less natural authority when I say that Clojure is awesome. Although 
this is somewhat mitigated somewhat by the sheer shock of having a designer 
saying something comprehensible about a programming language.

On Thursday, August 21, 2014 7:44:18 AM UTC+2, Quzanti wrote:
>
> "If an investor were kicking people out, its usually because money is 
> running low or for other more diffuse reasons. If an investor or boss 
> somewhere where kicking out people at random, he would quickly loose 
> respect from his other employeers. The rest would soon leave as well."
>
> Hence the need for a scapegoat. Generally if an investor can make 20% of 
> their startups work, people will blame the technologists for the failure of 
> the other 80%, and the investor will have a PR machine to distort the 
> history if needed. But yes, startup hubs work best when there are angel 
> investors who want to build a personal reputation or where the 
> institutional investors have strong links with the universities producing 
> the start up talent and so don't want to jeopardise those (eg the Stanford 
> University system). Even the best VCs will shut down the majority of their 
> start ups though, so you'd think that would make people avoid them, but 
> there are always people out there who need money to try and realise their 
> dreams. 
>
> All a bit tangential to the the original thread question though, which was 
> assuming a high growth, high pressure, scale it up fast, need results kind 
> of culture, would Clojure be a good fit?
>
> On Wednesday, August 20, 2014 11:46:48 PM UTC+1, Linus Ericsson wrote:
>>
>> Well, for better or worse we don't like conflicts that much. This has 
>> benefits when it comes to some kinds of problem solving (the way to 
>> consensus in Swedish companies is worth at least a chapter in a big book 
>> about antrophology). This shyness for open conflicts can lead to stagnation.
>>
>> This means that status quo is not turned over that easily, but when it 
>> does, it happens like an avalanche (cow oscillator comes to mind). 
>> Stockholm University has Clojure and Erlang in its second year curriculum 
>> for computer science. Just saying.
>>
>> Apart from that, its 3kloc database queries and Java classes galore and 
>> Wordpress shops all over, like everywhere else. The single larges group 
>> of workers in Stockholm is of course computer programmer. 33000 people out 
>> of a million of so.
>>
>> If an investor were kicking people out, its usually because money is 
>> running low or for other more diffuse reasons. If an investor or boss 
>> somewhere where kicking out people at random, he would quickly loose 
>> respect from his other employeers. The rest would soon leave as well.
>>
>> "In Sweden we have a system..." the ironic saying goes, but the truth is 
>> that even though the housing situation is outright catastrophic, you would 
>> not ever be put on the street if you wasn't psychotic enough not to accept 
>> the help offered (worst case you would end up in a sad, sleepy, far far out 
>> suburb with long commuting distances, but hey). The social security system 
>> is simply generous enough to make sure pe