My handy Clojure debugging tools

In this blog post, I’d like to share how my debugging tools for Clojure have evolved over the past years. Let’s start with each tool (println …) It is the most versatile technique. There is no learning curve. Focus on tapping at the right places, make the assertions, and move on. The only downside would be there is quite a lot of typing and undo-ing after the fact (defn x [x] (println x) x) ...

August 26, 2024 · 3 min · 574 words · David Liman

Don't use clj-time, use clojure.java-time instead

I was trying out different blogging platform Link to: https://dvliman.bearblog.dev/dont-use-clj-time-use-clojurejava-time-instead/

January 10, 2024 · 1 min · 10 words · David Liman

Building a Live Streaming app in Clojure

I want to echo John Carmack’s tweet that all giant companies use open-source FFmpeg in the backends. FFmpeg is a core piece of technology that powers our live-streaming and recording system at Inspire Fitness. It certainly is high-quality open-source software that we use to record and stream countless hours of workout videos. It looks like this: Users can: watch live-streaming content, or playback on-demand videos from our content library High level Behind the scene, we have: ...

February 28, 2022 · 4 min · 729 words · David Liman

Building a reactive web service with Spring Webflux, Kotlin, and PostgreSQL

This post shows how to create a reactive web service with Spring Webflux, Kotlin, PostgreSQL For the context,Spring Framework 5 introduced the so-called Reactive Stack. The keyword reactive refers to the Reactive Manifesto, which is a specification for asynchronous stream processing with non-blocking back-pressure. This specification is a joint collaboration between engineers from Netflix, Pivotal, Red Hat, Twitter and many others. It has been implemented in many languages such as: Java, Javascript, Swift, NET, etc. ...

March 24, 2019 · 3 min · 585 words · David Liman