This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-09-14
Channels
- # babashka (18)
- # beginners (92)
- # calva (11)
- # cljs-dev (2)
- # clojure (37)
- # clojure-berlin (6)
- # clojure-czech (2)
- # clojure-dev (6)
- # clojure-europe (50)
- # clojure-france (15)
- # clojure-nl (4)
- # clojure-spec (1)
- # clojure-uk (18)
- # clojurescript (29)
- # cursive (31)
- # data-science (1)
- # datascript (2)
- # datomic (26)
- # depstar (55)
- # devcards (1)
- # duct (3)
- # emacs (49)
- # fulcro (29)
- # joker (3)
- # kaocha (1)
- # membrane (5)
- # midje (3)
- # music (2)
- # nrepl (4)
- # off-topic (3)
- # parinfer (13)
- # pathom (1)
- # portal (5)
- # re-frame (13)
- # ring (1)
- # schema (1)
- # sci (7)
- # shadow-cljs (25)
- # tools-deps (10)
- # vim (34)
- # vrac (2)
- # xtdb (20)
When implementing an interface / protocol with multiple overloads in defrecord / reify this readme https://clojure.org/reference/protocols seems to suggest writing (foo [ ] ...)
multiple times. But later on in the readme I see:
(extend-type MyType
Countable
(cnt [c] ...)
Foo
(bar [x y] ...)
(baz ([x] ...) ([x y zs] ...)))
What's the official syntax?For defrecord / deftype you do a method per arity (like java without types, because it ends up generating methods for each), for extend type it is like fns with a different body per arity because it actually macro expands to a fn
Can anyone recommend a Clojure product/library/tool similar to Python's celery (aka task execution from a queue -- https://docs.celeryproject.org/en/stable/getting-started/introduction.html). Or does everyone just kind of roll their own for that sort of work in Clojure?
I haven't gone far enough to know what to recommend, but my money is on there being pretty robust Java solutions you can use
@U3BALC2HH are you planning to use RabbitMQ? Is celery compatibility required (e.g. you have python publishers/consumers)?
no, just looking for similar conceptual functionality
After a few years with Celery, I would not recommend it to anyone. :) But I got pretty bitter with the whole Python ecosytem. With that being said, I couldn't find any complete replacement. Here are some links with similar/related stuff that I've gathered, maybe they will be helpful: - http://immutant.org/documentation/current/apidoc/immutant.messaging.pipeline.html - http://www.quartz-scheduler.org/ - https://github.com/prepor/twarc - https://redisson.org/ - https://github.com/gresrun/jesque - https://github.com/apache/storm - http://www.onyxplatform.org/
@U2FRKM4TW agreed re:Celery 😉 Dang awesome list or resources!!
Ah, yet another few: - https://github.com/framed-data/overseer - https://github.com/mikub/titanoboa - https://github.com/schmee/daguerreo
We have built our own RabbitMQ library/component https://github.com/nomnom-insights/nomnom.bunnicula - currently processing millions of jobs every day
(was that to me or @U0JEFEZH6. @U2FRKM4TW?)
@U2FRKM4TW no, it's a "simple" job publisher/consumer thing. DAGs etc are out of scope (not sure how it would all work to be honest, it's not something we need, at least as a "hard" concept)
Hey, I'm trying to upgdate my dependencies with lein ancient
and I keep getting this: "Syntax error compiling var at (midje/util/exceptions.clj:75:3).\nUnable to resolve var: aviso.exception/traditional in this context\n"
@franklineapiyo Sounds like a version conflict between one or more libraries. Do you have stuff in your ~/.lein/profiles.clj
file? That's often the most common cause of problems with Leiningen.
Yes I do. bu the only thing in there is {:user {:plugins [[lein-ancient "0.6.15"]]}}
And you're getting the exception from lein ancient
itself? Or when you try to run the project after it has updated it?
(or are you just trying to get a report of outdated dependencies to update them yourself?)
I've tried to run lein ancient
interactive mode and this only happens when I try to upgrade midje, clojure or dk.ative/docjure
Running that... I get Reflection warning, dk/ative/docjure/spreadsheet.clj:642:17 - call to org.apache.poi.ss.util.CellReference ctor can't be resolved.
You could just update these things manually -- but the problem looks like recent versions of Midje depend on that var, which was introduced in Aviso Pretty 0.1.15, which all happened a few years ago.
I don't really trust any tools that try to update my project configuration "automatically"...
But @seancorfield, I don't see Aviso Pretty anywhere in my project.clj... I'm a bit of a newb.. how should I update something that isn't in my project.clj... I think it's a dependency of something that's in my dependencies correct?
Part of me feels like saying "Stop using Midje -- that's part of your problem"... 🙂
Since this is probably going to be a fair bit of hand-holding to get to the bottom of this and you're fairly new to Clojure, perhaps share your project.clj
file in #beginners where folks have opted in to spending more time digging into basic problems like this (I'm happy to continue digging into it in #beginners )
(there's an expectation in this channel that you can mostly debug dependency conflicts on your own)