This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-12-13
Channels
- # adventofcode (36)
- # aleph (1)
- # announcements (7)
- # aws (4)
- # babashka (14)
- # beginners (61)
- # calva (79)
- # cider (19)
- # clojure (48)
- # clojure-austin (1)
- # clojure-australia (2)
- # clojure-czech (2)
- # clojure-europe (46)
- # clojure-france (8)
- # clojure-nl (19)
- # clojure-uk (4)
- # clojuredesign-podcast (14)
- # core-logic (42)
- # data-science (3)
- # datalevin (8)
- # datomic (76)
- # events (1)
- # figwheel-main (9)
- # fulcro (6)
- # helix (1)
- # holy-lambda (1)
- # honeysql (2)
- # jobs (2)
- # jobs-discuss (20)
- # leiningen (5)
- # lsp (87)
- # minecraft (11)
- # nextjournal (4)
- # off-topic (17)
- # practicalli (1)
- # reagent (22)
- # reitit (8)
- # releases (3)
- # rum (2)
- # shadow-cljs (18)
- # sql (11)
- # tools-build (5)
- # tools-deps (9)
- # xtdb (20)
many libs misbehave by bundling deps
(usually this only gets noticed when you realize you are using the wrong version of some lib...)
also log4j is a likely candidate for that kind of bundling, because the lib authors want to bake in logging features...
Hard to get rid of with out getting rid of the dep, annoying to track down which dep is behaving badly
Basically you have to look at all the jars of your deps and see if they contain log4j classes
this does seem like something a plugin could do, logging out class files in deps / searching for classes matching some pattern and reporting their provenance
There are some that do this, although I don't recall the names
Probably findable here via search, they've been discussed
tools.logging is a dependency of e.g. Aleph or https://github.com/yogthos/config it seems.
tools.logging does not depend on log4j
tools.logging can use log4j as an underlying framework, if you also provide log4j as a dependency and its either explicitly configured or automatically found via the load order at https://github.com/clojure/tools.logging/#configuration
https://github.com/conal/talk-2021-can-tensor-programming-be-liberated I watched this talk not too long ago and it seems like there may be some overlap (the static/dynamic gap notwithstanding) between these ideas - namely, that of decoupling sequential processing from the "array" representation: > The main message of this talk is that "array algorithms" are often not naturally array algorithms at all, but rather an error-prone, composition-resistant enmeshing of a safe, simple, and illuminating algorithm on a natural (non-array) data type, together with details of decoding from and encoding to arrays.
Conal Elliot uses the ideas in that talk to make the Fast Fourier Transform "portable" across different data structures in a provably correct way, comparing its performance on a tree to its performance on a https://www.google.com/books/edition/Algorithms_for_Functional_Programming/kjR1DwAAQBAJ?hl=en&gbpv=1&dq=bush+data+structure&pg=PA158&printsec=frontcover.