This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-11-14
Channels
- # aleph (10)
- # announcements (2)
- # beginners (228)
- # calva (18)
- # cider (6)
- # clara (5)
- # cljdoc (25)
- # cljs-dev (22)
- # clojure (78)
- # clojure-dev (30)
- # clojure-europe (2)
- # clojure-finland (1)
- # clojure-italy (32)
- # clojure-nl (21)
- # clojure-uk (126)
- # clojurescript (34)
- # cursive (5)
- # data-science (2)
- # datascript (2)
- # datomic (26)
- # defnpodcast (1)
- # emacs (5)
- # figwheel (5)
- # figwheel-main (3)
- # fulcro (14)
- # graphql (5)
- # jobs (1)
- # keechma (4)
- # nrepl (5)
- # off-topic (35)
- # onyx (3)
- # pedestal (12)
- # random (1)
- # re-frame (35)
- # reagent (8)
- # reitit (20)
- # remote-jobs (5)
- # ring-swagger (20)
- # shadow-cljs (166)
- # sql (43)
- # vim (6)
- # yada (15)
Hello all,
Im building a docker client for Clojure at https://github.com/lispyclouds/clj-docker-client which wraps around https://github.com/spotify/docker-client which is in Java and isnt exactly Clojure friendly. I have published it to clojars with lein deploy clojars
and it works fine in the leiningen repl/project if I add [lispyclouds/clj-docker-client "0.1.4"]
to my project.clj. But when I tried with the Clojure CLI by adding lispyclouds/clj-docker-client {:mvn/version "0.1.4"}
to deps.edn i get the exception:
user=> (require '[clj-docker-client.core :as docker])
nil
user=> (def conn (docker/connect))
#'user/conn
user=> (docker/image-ls conn)
ClassNotFoundException com.kenai.jffi.Type jdk.internal.loader.BuiltinClassLoader.loadClass (BuiltinClassLoader.java:583)
which is a dependency of the spotify lib. This however works if i add the uberjar via local/root
in deps.edn. What am I doing wrong here? Any help is much appreciated! 😄To follow up on my previous question about sets, the following minimal example shows the core problem, which is that =
isn't commutative for the involved types, as the host platform dictates this.
(let [x (java.util.Date.)
y (java.sql.Timestamp. (.getTime x))]
(= (= x y)
(= y x)))
;; => false
(let [x (java.util.Date.)
y (java.sql.Timestamp. (.getTime x))]
[(.equals x y) (.equals y x)])
;; => [true false]
sorry, I interpreted that as "the host platform dictating equality to be commutative" :)
@bronsa, my formulation was probably wrong, @andy.fingerhut wrote lots of examples of this in a reply thread on my first post (https://clojurians.slack.com/archives/C03S1KBA2/p1542102262019000).
Does anyone know of Clojure artifacts on Maven Central besides the stuff under org.clojure
?
I think commutative is the correct word here. Reflexive for = would mean "is it always true that a thing is equal to itself?" Clojure =
is reflexive most of the time except for the weird value ##NaN
, and for any Java objects that are not reflexive for the .equals
method (I don't know which objects might be non-reflexive that way, if any).
Amazon is not the first company on my mental list of companies that might do such a thing, but it certainly makes sense for them to do.
they’re not the only ones - Red Hat is doing it as well, and the AdoptOpenJDK too
I’m a little unclear whether Oracle’s goal was to a) make money, b) stop doing old version maintenance, or both. They may be succeeding spectacularly with b and completely failing at a.
tbh, I’m pretty happy they’ve driven multiple industry players to commit the resources to make good free versions with support
No support, but if you're looking for builds only, Alexey Shipilev has a nice build server
@alexmiller what is getting you excited about Corretto exactly? I looked at it and wasn't particularly bothered.
it means there's someone supporting 1.8, many clojure libraries don't work well with versions after 1.8
are zulu committed to support 1.8?
I’m just happy to have a range of free choices from multiple vendors
https://www.azul.com/last-free-java-8-download/ Seems so: > We support Java SE 8, as well as Java 6, 7, 9 and 10. And with Azul, you not only get bug fixes and timely security updates, you also get access to our award-winning Support team.
Having said that, I've never felt like I needed support. I understand enterprises will ask for it no matter what. Has anyone ever wished they'd had support (using clojure on the JVM?)
you are constantly benefitting from support
by getting security fixes
you’re not aware of it because you’re not constantly being hacked and ddos’ed in your jvm web app
no joke intended - this is really important and we (the greater JDK community) have taken it for granted for a long time
@alexmiller I think this is good to highlight.
and a lot of industry players have really been free riders
I take this as an example of why it is so difficult to sell computer security products (or security in general) -- if you do well, nothing seems to happen.
reaping the benefits but not paying for people to do the work
(which is not to say these companies don’t have people helping)
but Sun then Oracle have borne the bulk of that
I’m happy to see it spread around some
because then everyone has skin in this game
that’s great for the future of the jvm
it's overloaded in practice: if you are supporting a software project, that can mean committed maintenance and software fixes (engineering work) or help desk / consultation / trouble shooting
usually it means some amount of each
yeah, I am being vague. having many players that maintain the jvm/jdk is a good thing. having multiple players with paid support options is also good though (as enterprises want this kind of thing).
fyi, we offer paid Clojure support at Cognitect
some companies find this to be an essential thing
most don’t need it
@alexmiller you've worked yourself out of a job by making it possible to always upgrade Clojure without breaking changes 😊
How has that worked him out of a job?
New features in next version!
Or rather, the breaking changes are limited to name conflicts with the new functions added in the next version of Clojure 🙂
Well, he gets to do cool things like write tools.deps. I'm trying to say support is probably less useful to companies as upgrades are always safe.
I'd bet Cognitect customers that pay for commercial Clojure support get to leave out those question for the most part (happily) and move on to more interesting productive questions: how best to use the language for my project X? (I'm not a paying Cognitect client, nor have I been involved in any such discussions.)
Dealing with breakage is only a time sink -- it doesn't move anyone forward.
If you get that under the support umbrella, then that's more interesting. I once again underestimate it!
Cognitect provides a range of architecture advice, consulting, support, etc - it’s pretty customized to what someone needs
To be honest, Java is now more appealing then ever. First off, it is one of the more polyglot platform. You can use it for Python, Ruby, Clojure, Kotlin, Scala, Eta, Groovy, Fantom, Java, etc. And now, it has multiple legitimate builds such as AdoptOpenJDK, Oracle OpenJDK, Azul Zulu OpenJDK, this Amazon Coretto OpenJDK, red hat has one don't know the name, etc. On top of that, it is starting to even expand in alternate VMs. You now have HotSpot, OpenJ9, Graal, Substrate, and Exelcsior Jet. And Oracle has been making pretty good work innovating on the platform. Once modules take off further, you'll be able to package a minimal JVM along your app for example. And let's not forget it is currently the fastest known VM of its sort. Now if only there was a memory optimised variant.