clojure@googlegroups.com2nd Call for Contributions: BOB 2018 - Berlin, Feb 23, 2018

2017-10-16 Thread Michael Sperber

Clojure submissions very welcome at BOB.  Also note that BOB precedes
:clojureD, which is on the day after, also in Berlin!


 BOB Conference 2018
 "What happens when we use what's best for a change?"
  http://bobkonf.de/2018/en/cfp.html
 Berlin, February 23
Call for Contributions
  Deadline: October 29, 2017

You are actively engaged in advanced software engineering methods,
implement ambitious architectures and are open to cutting-edge
innovation? Attend this conference, meet people that share your goals,
and get to know the best software tools and technologies available
today. We strive to offer a day full of new experiences and
impressions that you can use to immediately improve your daily life as
a software developer.

If you share our vision and want to contribute, submit a proposal for
a talk or tutorial!

Topics
--

We are looking for talks about best-of-breed software technology, e.g.:

- functional programming
- persistent data structures and databases
- types
- formal methods for correctness and robustness
- abstractions for concurrency and parallelism
- metaprogramming
- probabilistic
  programming
- math and programming
- controlled side effects
- beyond REST and SOAP
- effective abstractions for data analytics
- ... everything really that isn’t mainstream, but you think should be.

Presenters should provide the audience with information that is
practically useful for software developers.

We’re especially interested in experience reports. But this could also
take other forms, e.g.:

- introductory talks on technical background
- overviews of a given field
- demos and how-tos

Requirements


We accept proposals for presentations of 45 minutes (40 minutes talk +
5 minutes questions), as well as 90 minute tutorials for
beginners. The language of presentation should be either English or
German.

Your proposal should include (in your presentation language of choice):

- an abstract of max. 1500 characters.
- a short bio/cv
- contact information (including at least email address)
- a list of 3-5 concrete ideas of how your work can be applied in a developer’s 
daily life
- additional material (websites, blogs, slides, videos of past presentations, 
...)

Submit here:

https://docs.google.com/forms/d/e/1FAIpQLSdjgwulSMpaITJ6q6cK_ndrfR1FlEs_HQlZy04LnUKC-ArCaQ/viewform?usp=sf_link

Organisation

- direct questions to contact at bobkonf dot de
- proposal deadline: October 29, 2017
- notification: November 13, 2017
- program: December 1, 2017

NOTE: The conference fee will be waived for presenters, but travel
expenses will not be covered.

Speaker Grants
--

BOB has Speaker Grants available to support speakers from groups
under-represented in technology. We specifically seek women speakers
and speakers who are not be able to attend the conference for
financial reasons. Details are here:

http://bobkonf.de/2018/en/speaker-grants.html

Shepherding
---

The program committee offers shepherding to all speakers. Shepherding
provides speakers assistance with preparing their sessions, as well as
a review of the talk slides.

Program Committee
-

(more information here: http://bobkonf.de/2018/en/programmkomitee.html)

- Matthias Fischmann, zerobuzz UG
- Matthias Neubauer, SICK AG
- Nicole Rauch, Softwareentwicklung und Entwicklungscoaching
- Michael Sperber, Active Group
- Stefan Wehr, factis research

Scientific Advisory Board

- Annette Bieniusa, TU Kaiserslautern
- Torsten Grust, Uni Tübingen
- Peter Thiemann, Uni Freiburg

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


Afraid of leaks with async chan

2017-10-16 Thread JokkeB
I'm a bit unsure of which channels will be collected and which will remain 
and potentially result in an out of memory error. I'd like to understand 
when I should close, unsub and untap channels to avoid leaks. It feels like 
a very difficult task to verify there are no leaks.

For example:

(defn read-one-msg [source]
 (let [c (async/chan)]
  (async/sub source :msg c)
  (async/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: hello world question !!!

2017-10-16 Thread Damien Mattei
following this tutorial : 
https://github.com/technomancy/leiningen/blob/stable/doc/TUTORIAL.md#tutorial
i succeed with leiningen to build a project,run it and after make a jar 
file :

lein new app my-stuff
cd my-stuff
lein uberjar
lein run
or : cd target; java -jar my-stuff-0.1.0-SNAPSHOT-standalone.jar

with some simplified from tutorial files:

project.clj

(defproject my-stuff "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME";
  :license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.8.0"]]
  
  :main my-stuff.core
  :aot [my-stuff.core])

core.clj

(ns my-stuff.core
  (:gen-class))

(defn -main [& args]
  (println "Welcome to my project! These are your args:" args))

the jar file in target/ could be loaded in the netbeans project Netbeans as 
a library/jar file and i can see the classes and definition in the netbeans 
IDE,
so it seems ok, note that at this point i can test it (on the tomcat 
server) but it should work (if i add also the clojure.jar runtime library i 
suppose)
also i do not need to make a full .war file from scratch, so it is more 
easy.

thank for your help

Damien

On Monday, October 16, 2017 at 8:10:24 AM UTC+2, Terje Sten Bjerkseth wrote:
>
> Damien: A good starting point for a simple web server might be to use
>
> lein new pedestal-service
>
> Then you can do lein uberjar to get a jar ready to run. Or check the 
> README for running local dev with a local REPL.
>
> If instead you want a WAR, you can switch from pedestal.jetty to 
> pedestal.immutant in project.clj and add the Immutant plugin:
>
> :plugins [[lein-immutant "2.1.0"]]
>
> Then do a lein immutant war to get your WAR for deployment to e.g. WildFly 
> 10.
>
> If you also want a nREPL to repl directly into the running server, have in 
> project.clj e.g.:
>
> :plugins [[lein-immutant "2.1.0"] [cider/cider-nrepl "0.15.1"]]
> :immutant {:war {:nrepl {:port }}}
>
> and do a lein immutant war --nrepl-start when making your WAR (check your 
> security on the nREPL port).
>
> Cheers,
> Terje
>
> (Haven't looked at WildFly 11 RC yet and don't know if Immutant works with 
> it. Considering moving some of our services from WildFly to separate Jetty 
> services instead, but WildFly 10 has worked very well.)
>
>
>
> søndag 15. oktober 2017 10.43.36 UTC+2 skrev Damien Mattei følgende:
>>
>> thanks for the answers and comments of John, James and others,
>> the discussion has opened many aspect of web application development and 
>> it is is positive.
>>
>> about the IDE, i'm not using Netbeans with Scheme or LisP exclusively, in 
>> fact Netbeans was used in the office just to create web service in Java,
>> this thing can be done by hand in command line too, Kawa Scheme also can 
>> do it itself :
>>  https://www.gnu.org/software/kawa/Servlets.html
>>
>> from the discussion i see now many solution to test ,I will install 
>> Leiningen, also i see in the doc of Immutant that it is possible to 
>> generate some war files :
>> http://immutant.org/documentation/current/apidoc/guide-wildfly.html#h3386
>>
>> i hope i could use Clojure for that because it seems a really fun and 
>> solid LisP dialect.
>> I will post updates when i have a concrete usable solution.
>>
>> Regards,
>>
>> Damien
>>
>> On Saturday, October 14, 2017 at 5:07:08 PM UTC+2, John M. Switlik wrote:
>>>
>>> James, 
>>>
>>> Thanks. I saw a writeup mentioning Leiningen that I will go back to. 
>>>
>>> It is not the 'toy' issue that concerns me. It is that all sorts of 
>>> browsers exist as well as a whole slew of different types of users. And, if 
>>> I am going to push something down to a remote device, I want to expect that 
>>> it would be handled in a nice manner. 
>>>
>>> As for example projects, these are prime; but, they are supported by 
>>> working professionals. So, Clojure does have a lot to offer. 
>>>
>>>http://base2s.com/work/ 
>>>
>>> I am sure that I'll look back and see that it was easy. But, this seems 
>>> like an opportunity to step through the thing (that is, the hugely 
>>> complicated world of the muddy cloud) and see how things evolved. Those 
>>> little interpreters are up there as a lure in the meantime. 
>>>
>>> Cheers, 
>>> John
>>>
>>

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

New Course on Clojurecademy: Exercism.io

2017-10-16 Thread Ertuğrul Çetin
Hey Everyone,

I released new course: *Exercism.io *on Clojurecademy, Clojure exercises 
from Exercism.io. I hope you are going to enjoy when solving those 
exercises!

Link: https://clojurecademy.com/courses/17592186091313/learn/overview

-- 
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: hello world question !!!

2017-10-16 Thread Justin Smith
the uberjar option bundles clojure.jar (as well as any other dependencies
you specify in your project.clj) into the output jar for you

On Mon, Oct 16, 2017 at 6:36 AM Damien Mattei 
wrote:

> following this tutorial :
> https://github.com/technomancy/leiningen/blob/stable/doc/TUTORIAL.md#tutorial
> i succeed with leiningen to build a project,run it and after make a jar
> file :
>
> lein new app my-stuff
> cd my-stuff
> lein uberjar
> lein run
> or : cd target; java -jar my-stuff-0.1.0-SNAPSHOT-standalone.jar
>
> with some simplified from tutorial files:
>
> project.clj
>
> (defproject my-stuff "0.1.0-SNAPSHOT"
>   :description "FIXME: write description"
>   :url "http://example.com/FIXME";
>   :license {:name "Eclipse Public License"
> :url "http://www.eclipse.org/legal/epl-v10.html"}
>   :dependencies [[org.clojure/clojure "1.8.0"]]
>
>   :main my-stuff.core
>   :aot [my-stuff.core])
>
> core.clj
>
> (ns my-stuff.core
>   (:gen-class))
>
> (defn -main [& args]
>   (println "Welcome to my project! These are your args:" args))
>
> the jar file in target/ could be loaded in the netbeans project Netbeans
> as a library/jar file and i can see the classes and definition in the
> netbeans IDE,
> so it seems ok, note that at this point i can test it (on the tomcat
> server) but it should work (if i add also the clojure.jar runtime library i
> suppose)
> also i do not need to make a full .war file from scratch, so it is more
> easy.
>
> thank for your help
>
>
> Damien
>
>
> On Monday, October 16, 2017 at 8:10:24 AM UTC+2, Terje Sten Bjerkseth
> wrote:
>>
>> Damien: A good starting point for a simple web server might be to use
>>
>> lein new pedestal-service
>>
>> Then you can do lein uberjar to get a jar ready to run. Or check the
>> README for running local dev with a local REPL.
>>
>> If instead you want a WAR, you can switch from pedestal.jetty to
>> pedestal.immutant in project.clj and add the Immutant plugin:
>>
>> :plugins [[lein-immutant "2.1.0"]]
>>
>> Then do a lein immutant war to get your WAR for deployment to e.g.
>> WildFly 10.
>>
>> If you also want a nREPL to repl directly into the running server, have
>> in project.clj e.g.:
>>
>> :plugins [[lein-immutant "2.1.0"] [cider/cider-nrepl "0.15.1"]]
>> :immutant {:war {:nrepl {:port }}}
>>
>> and do a lein immutant war --nrepl-start when making your WAR (check your
>> security on the nREPL port).
>>
>> Cheers,
>> Terje
>>
>> (Haven't looked at WildFly 11 RC yet and don't know if Immutant works
>> with it. Considering moving some of our services from WildFly to separate
>> Jetty services instead, but WildFly 10 has worked very well.)
>>
>>
>>
>> søndag 15. oktober 2017 10.43.36 UTC+2 skrev Damien Mattei følgende:
>>>
>>> thanks for the answers and comments of John, James and others,
>>> the discussion has opened many aspect of web application development and
>>> it is is positive.
>>>
>>> about the IDE, i'm not using Netbeans with Scheme or LisP exclusively,
>>> in fact Netbeans was used in the office just to create web service in Java,
>>> this thing can be done by hand in command line too, Kawa Scheme also can
>>> do it itself :
>>>  https://www.gnu.org/software/kawa/Servlets.html
>>>
>>> from the discussion i see now many solution to test ,I will install
>>> Leiningen, also i see in the doc of Immutant that it is possible to
>>> generate some war files :
>>> http://immutant.org/documentation/current/apidoc/guide-wildfly.html#h3386
>>>
>>> i hope i could use Clojure for that because it seems a really fun and
>>> solid LisP dialect.
>>> I will post updates when i have a concrete usable solution.
>>>
>>> Regards,
>>>
>>> Damien
>>>
>>> On Saturday, October 14, 2017 at 5:07:08 PM UTC+2, John M. Switlik wrote:

 James,

 Thanks. I saw a writeup mentioning Leiningen that I will go back to.

 It is not the 'toy' issue that concerns me. It is that all sorts of
 browsers exist as well as a whole slew of different types of users. And, if
 I am going to push something down to a remote device, I want to expect that
 it would be handled in a nice manner.

 As for example projects, these are prime; but, they are supported by
 working professionals. So, Clojure does have a lot to offer.

http://base2s.com/work/

 I am sure that I'll look back and see that it was easy. But, this seems
 like an opportunity to step through the thing (that is, the hugely
 complicated world of the muddy cloud) and see how things evolved. Those
 little interpreters are up there as a lure in the meantime.

 Cheers,
 John

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

Re: why java version in 10 times faster?

2017-10-16 Thread Daniel Compton
Hi Mike

A few thoughts

* In my experience it is not unusual that idiomatic Clojure could be 10x
slower than the equivalent Java.
* Where did you do your timing on the ref calculation? In the Clojure
version it calculates distinct at the end.
* How did you do your benchmarking? JVM benchmarking is very tricky, and
could easily overwhelm all other results.
* Have you verified that your Java code is correct under all situations?

Overall I think this is a good illustration of a tradeoff that Clojure
makes against Java. Idiomatic Clojure code is often slower than the Java
that one might write. However (to my eyes) it is far easier to read,
understand, and crucially to verify correctness even on the small example
of swapping numbers. Most of the time, for most systems this is a good
tradeoff. Ensuring correctness and performance with locks in a larger
concurrent system becomes even more difficult.

However if performance is critical, and you have the time and skill to
verify that your locking algorithm is correct, then you can always use
locks. Either through direct calls to Java interop, or writing your locking
code in Java and calling that via Java interop.

For more info on this, you can read the conversation between Rich Hickey
and Cliff Click about STMs vs Locks

.

--
Daniel.

On Mon, Oct 16, 2017 at 7:44 PM Mike <145...@gmail.com> wrote:

> https://clojure.org/reference/refs correct link
>
>
> --
> 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.