Disclaimer: these posts are synchronized from Planet Clojure

Biff coding #6: Babashka tasks

We replaced Biff's task shell script with Babashka tasks (partially, anyway). I demonstrate how to store tasks in separate repository so they can be shared by multiple projects.Want to join the next Biff meetup? RSVP here....

Clojure Deref (Sep 16, 2022)

Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem. (@ClojureDeref RSS) Highlights Looking to the future, the reClojure Call for Speakers is happening now until Oct 9th! Get those talks in. Also, the keynotes will be James Gosling, who designed and imp...

Focus

For fun, I wrote a raytracer in Zig yesterday. It’s a port of a project I did in 2013, in JavaScript. It’s the first time in a while I’ve made a project just for kicks. If you look at the number of GitHub repositories I’ve committed to since 2013, the number is decreasing. Same with number of commit...

Senior Clojure Engineer at StatsBomb

Senior Clojure Engineer at StatsBombgbp60000 - gbp130000We're expanding the team that works on our core football data pipelines. This involves batch and stream processing of millions of events a day that we collect from video, merging that data with outputs from statistical and computer vision model...

How to automate everything

When I worked at Facebook, I worked on making cross-region failover for source control more effective and automated. Before my work, when we were doing a cross-region failover, we brought the whole team in a room for the day. We also brought food and coffee and ran through the commands as a group t...

Future Memory Leaks

Java 19 introduces “Virtual Threads”, which is a new kind of thread on the JVM. One big difference with regular Threads is that it’s unidiomatic to create thread pools: [Using synchronization constructs] is more effective and convenient than thread pools [of Virtual Threads], and is also more secu...

Деджаваскриптизиция

Как вы думаете, сколько запросов делает браузер, пока вы читаете заметку в моем блоге? Я тоже не знал. Десять, двадцать? Что гадать, если можно проверить!Открываем консоль разработчика, вкладка Network. Виден всякий ajax/js-хлам. Тык правой кнопкой → “Save all as HAR with content”:...

Unrolling every-pred and some-fn

some-fn and every-pred started life as single-line combinators proposed by Fogus, Christophe Grand and others:(defn every-pred [& preds] (fn [& args] (every? #(every? % args) preds))) (defn some-fn [& preds] (fn [& args] (some #(some % args) preds))) ...

Clojure Deref (Sep 9, 2022)

Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem. (@ClojureDeref RSS) Highlights So many cool things happening this week in the Clojure Deref! I would encourage you to dive into some of the links below in every section - there are really interesting ...

A Significant clojure.test Enhancement

I’d wager any Clojure programmer has come across CLJ-2525. You know, when your test fixture throws an error and doesn’t mention any of your testing strings? Just “Uncaught exception, not in assertion”, leaving you momentarily dumbfounded about which fixture or doseq branch caused it? That. I’m guess...

Instrumenting Clojure protocols

I recently added support for instrumenting defprotocol in Plumatic Schema. It has worked out quite nicely. It requires no usage changes in invocation or extensions, supports any kind of protocol extension (interface, extend, and metadata), and runs on Clojure and ClojureScript (however, babashka is ...

My Clojure book gradually gets into shape

I am happy to say that my Clojure book is gradually getting into shape. When ever I get time, I am adding few examples into it. Today I realized that I had added enough examples into Functions to make it almost complete.Functions are at the heart of Clojure, and if that section is almost example com...