Tell me if you've heard this story before. A company is building a software product. The initial prototypes are promising. They quickly add new features and start attracting customers. Things look good; they secure more funding and grow the team. Fast-forward a year or two, and things look less rosy.| Gaiwan / Heart of Clojure
A Conjure Piglet Client| Gaiwan / Heart of Clojure
by Laurence Chen “Laurence, are you interested in Piglet? Do you want to help develop Piglet?” Arne asked me. Piglet is the new language he recently released, of course, another Lisp. “Sure, where should I start?” I replied. “You have two options: (1) Learn Emacs,| Gaiwan / Heart of Clojure
by Laurence Chen I took over a web application whose frontend was built with re-frame, and not long after I started working on it, I felt a bit of discomfort. So, I decided to investigate the source of that discomfort. And my first suspect was re-frame. The reason I had| Gaiwan / Heart of Clojure
by Laurence Chen There was once a time when a client asked me to add a rate limit to an HTTP API. I quickly identified three similar options, all of which could apply rate limiting via Ring middleware: https://github.com/liwp/ring-congestion https://github.com/killme2008/clj-rate-limiter https://codeberg.| Gaiwan / Heart of Clojure
by Laurence Chen In my work at Gaiwan, there was a piece of code with poor quality that always felt like a thorn in my side. For a long time, I couldn’t come up with a better way to handle it. The code was a Nested If. Each| Gaiwan / Heart of Clojure
by Laurence Chen When I was a child, my sister caught chickenpox. Instead of isolating us, our parents let us continue playing together, and I ended up getting infected too. My father said, “It’s better to get chickenpox now—it won’t hurt you. Children| Gaiwan / Heart of Clojure
by Laurence Chen As a Neovim user writing Clojure, I often watch my colleagues modifying Elisp to create plugins—for example, setting a shortcut key to convert Hiccup-formatted data in the editor into HTML. My feeling is quite complex. On one hand, I just can’t stand Emacs;| Gaiwan / Heart of Clojure
Metabase doesn’t work with Datalog? A high-performance, low-maintenance data sync solution for seamless BI dashboards| Gaiwan / Heart of Clojure
by Laurence Chen At the beginning of 2025, I took over a client project at Gaiwan. It was a legacy code maintenance project that used re-frame. While familiarizing myself with the codebase, I also began fixing the bugs the client had asked me to address. This process was anything but| Gaiwan / Heart of Clojure
by Laurence Chen For a long time, I had a misunderstanding about Clojure: I always thought that the extensibility Clojure provides was just about macros. Not only that, but many articles I read about Lisp emphasized how Lisp’s macros were far more advanced than those in other languages| Gaiwan / Heart of Clojure
by Laurence Chen Well done on the Compass app. I really like how fast it is (while retaining data consistently which is hugely undervalued these days). I’m not just being polite, I really like it. by Malcolm Sparks Before the Heart of Clojure event, one of the projects| Gaiwan / Heart of Clojure
by Laurence Chen My friend Karen joined an online community of product managers and took on the task of managing a mentor-mentee matchmaking system. She has years of experience as a product manager but lacks a background in software development. Driven by her strong passion for the community, she managed| Gaiwan / Heart of Clojure
Hello Heart of Clojure 2024 Attendees, Although Heart of Clojure was more than two months ago now, we are still working on documenting and evaluating our experiences there. Read on below to get the news on our conference videos, attendee survey results, and diversity report. Conference videos For your viewing| Gaiwan / Heart of Clojure
More than 20 years ago, when I first began learning programming languages, I read a line in a book: C is a high-level language. But it wasn't until years later, during a university class on assembly language, when I had to use jump commands just to write a| Gaiwan / Heart of Clojure
Hope everyone had a wonderful time at Heart of Clojure last week! After the pandemic shutdowns, it's been so hard to find communities meeting in person, so I'm proud that we made Heart of Clojure happen for 250+ Clojure and functional programming enthusiasts. In this "we" are our many volunteers| Gaiwan / Heart of Clojure
Learn about Clojure, ClojureScript, Open Source, Software Design and Architecture| Gaiwan / Heart of Clojure
This is about a 17 minute read. Feel free to pause and come back to it later. Clojure is not one of the handful of "big" mainstream languages. This means that sometimes people are surprised that we are all in on Clojure. Why go against the grain? Why make it| Gaiwan / Heart of Clojure