= Clojure Deref (Nov 19, 2021)
Alex Miller
2021-11-19
:jbake-type: post

ifdef::env-github,env-browser[:outfilesuffix: .adoc]

Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem. (https://twitter.com/ClojureDeref[@ClojureDeref] https://clojure.org/feed.xml[RSS])

== Highlights

I was glad to see an initial release of https://github.com/clj-holmes/clj-holmes[clj-holmes], a static application security testing tool to look for vulnerabilities in Clojure code. clj-holmes is an extensible framework and has some initial rules but is open to extension for more. I am pretty regularly asked for a tool in this area similar to Fortify or static scanners in other languages - lots of companies have regulatory requirements to proactively scan code in this way and this is a great start. Check it out if you're interested!

== In the core

We have been moving a bunch of jiras (some new stuff, some bug fixes) through the pipeline and are hoping to get the next 1.11 alpha out early next week with all of that stuff. The https://clojure.atlassian.net/issues/?filter=10033[1.11 Targeted] list shows everything that's currently open for 1.11. Everything with Approval=Ok there will be in the next alpha plus probably a few more that make it through. (And of course, none of the others are guaranteed to end up in 1.11, that's just what we have in flight at the moment). Likely this will also include a spec release to pick up https://clojure.atlassian.net/browse/CLJ-2606[CLJ-2606] which relates to the trailing map support added in 1.11.0-alpha1.

I've spent a fair amount of time on core.async this week, initially focused on https://clojure.atlassian.net/browse/ASYNC-204[ASYNC-204] which is being screened right now, but also I've cleaned up some "won't fix" stuff and fixed some other minor things. Planning to release core.async early next week with those updates. In the process of all that I recalled that I was working on a set of docs for core.async and was shocked to discover it had been two years since I had last touched it. I dusted that off and am almost done with those, better 8 years late than never right?

At the end of last week I made several enhancements to the `compile-clj` task - this will now automatically use the @classpath-file feature on Windows when needed and available (feature was added in Java 9), and you can pass several additional options through `compile-clj` to the compilation task if needed (like `:java-opts`). Also, I created a `git-process` task that takes care of all the tedium around shelling out to git. Some examples in the https://clojure.github.io/tools.build/clojure.tools.build.api.html#var-git-process[docs]. The https://clojure.github.io/tools.build/clojure.tools.build.api.html#var-uber[uber] docs were improved as well.

Fogus has been doing some ongoing maintenance in the Cognitect aws-api and transit-clj this week too.

== Upcoming Events

* https://www.reclojure.org/#speakers[re:Clojure speakers] - Dec 3-4
* https://www.reclojure.org/#workshops[re:Clojure workshops] - happening now un through re:Clojure, check out all the workshops!
* https://londonclojurians.org/[London Clojurians] - regular online talks

== Videos and podcasts

* https://www.therepl.net/episodes/43/[The REPL podcast] - 43: Clojure, The Essential Reference with Renzo Borgatti
* https://anchor.fm/lostinlambduhhs/episodes/Kira-McLean-Digital-Nomad-e1aeiqh[Lost in Lambduhhs podcast] - :Kira-McLean (Digital Nomad)
* https://soundcloud.com/defn-771544745/78-adrian-smith-aka-phronmophobic?si=edbf610bd20e43e9a664a6269497fe37[defn podcast] - #78 Adrian Smith a.k.a phronmophobic
* https://www.youtube.com/watch?v=hMEX6lfBeRM[Inside core.async Channels] - Rich Hickey from EuroClojure 2014 (new edit)
* https://www.youtube.com/watch?v=hsndwTXWLR8[AWS Lambda and Clojure in Anger] - Juan Facorro
* https://www.youtube.com/watch?v=cRc0a4HJ7aI[Clojure tutorial : Generating Avro schema from malli with @refset]
* https://www.youtube.com/watch?v=cIXBbI88YE8[ClojureScript for React Developer - 20 A. Your/Global Feed Articles]
* https://www.youtube.com/watch?v=Z4Fxsg-NB1w[ClojureScript for React Developer - 21. Improving Home/Profile Page UX]
* https://www.youtube.com/watch?v=SN2F9QGc2dc[ClojureScript for React Developer - 22. Tags I]
* https://www.youtube.com/watch?v=odN1nJG48Qo[ClojureScript for React Developer - 23. Tags II]
* https://www.tiktok.com/@tophat8855/video/7029875814992891183[Clojure TikTok is a thing?] - Heather Moore-Farley has dropped a couple lately

== Blogs

* https://corfield.org/blog/2021/11/14/clojure-doc/[The new clojure-doc web site] - Sean Corfield
* https://functional.works-hub.com/learn/functional-workplaces-how-commsor-are-building-a-community-operating-system-using-clojure-6da8e[Functional Workplaces: How Commsor are Building a Community Operating System using Clojure] - Mihaela Popa
* http://hugoduncan.org/post/back_to_blogging.html[Back to blogging] - Hugo Duncan
* https://blog.michielborkent.nl/markdown-clj-babashka-compatible.html[Making markdown-clj babashka-compatible] - Michiel Borkent
* https://yyhh.org/blog/2021/11/t-wand-beat-lucene-in-less-than-600-lines-of-code/[T-Wand: Beat Lucene in Less Than 600 Lines of Code] - Yunyao and Huahai
* https://cuddly-octo-palm-tree.com/posts/2021-11-14-clojure-promise/[The Clojure Promise] - Gary Verhaegen
* https://www.metosin.fi/blog/frontend-tools/[Clojurescript Frontend Development For Novices] - Kari Marttila

== Libraries and Tools

New releases and tools this week:

* https://github.com/clojure/tools.build[tools.build] v0.6.6 - A library for building artifacts in Clojure projects
* https://github.com/elastic/eui-cljs[eui-cljs] 41.1.0 - A Clojurescript wrapper around the venerable Elastic UI Component library
* https://github.com/Cyrik/omni-trace[omni-trace] 0.1.0 - Omnipotent/omniscient tracing core for debugging clojure(script)
* https://github.com/theiceshelf/trunk[trunk]  - Language learning application
* https://github.com/vlaaad/remote-repl[remote-repl] 1.2.12 - Remote repl for Clojure
* https://github.com/fulcrologic/fulcro-rad[fulcro-rad] 1.1.0-RC3 - Fulcro Rapid Application Development
* https://github.com/ingesolvoll/re-statecharts[re-statecharts]  - re-frame integration for clj-statecharts
* https://github.com/liquidz/antq[antq] 1.3.0 - Point out your outdated dependencies
* https://github.com/wilkerlucio/pathom3[pathom3] 2021.11.16-alpha - Logic programming via semantic attribute
* https://github.com/babashka/neil[neil] v0.0.17 - A CLI to add common aliases and features to deps.edn-based projects
* https://github.com/holyjak/clj-concordion[clj-concordion] 2.1.2 - Developer-friendly, simple BDD tests using Clojure and clojure.test, based on Concordion.org
* https://github.com/clj-commons/clj-http-lite[clj-http-lite] 0.4.384 - A lite version of clj-http that uses the JRE's HttpURLConnection
* https://github.com/ingesolvoll/kee-frame[kee-frame] 1.3.2 - re-frame with batteries included
* https://github.com/ingesolvoll/glimt[glimt] 0.2.2 - HTTP FSM for re-frame
* https://github.com/bsless/double-dispatch-lite[double-dispatch-lite]  - Lightweight JIT friendly multimethods
* https://github.com/babashka/fs[fs] 0.1.1 - File system utility library
* https://github.com/babashka/babashka.curl[babashka.curl] 0.1.0 - A tiny curl wrapper via idiomatic Clojure, inspired by clj-http, Ring and friends
* https://github.com/viesti/timbre-json-appender[timbre-json-appender] 0.2.5 - JSON appender for Timbre
* https://github.com/babashka/babashka[babashka] https://github.com/babashka/babashka/blob/master/CHANGELOG.md#065-2021-11-13[0.6.5] - Native, fast starting Clojure interpreter for scripting
* https://github.com/borkdude/carve[carve] 0.1.0 - Carve out the essentials of your Clojure app