In the two most recent Lambda Island episodes I covered in-depth how to create command line utilities based on Lumo , how to combine them with third party libraries, and how...
Clojurists Together is funding 11 projects for Q3 2022. These projects are Maria.cloud, ClojureDart, mathbox-cljs, Clj-kondo and related, Clojure Data Cookbook, Kaocha and related, Biff, Clojupedia, Exo, portal and cljfx.
In the two most recent Lambda Island episodes I covered in-depth how to create command line utilities based on Lumo , how to combine them with third party libraries, and how...
This weekend it’s Ludum Dare again, the world’s longest running game jam. The idea is that, alone or with a team, you build a game in a weekend based on a certain theme. We got...
Elm and other statically typed languages have a great feature called Union Types (also called Sum Types or Algebraic Data Types). Here’s an example taken from Elm. Suppose your...
Did you ever fix a bug in an open source library, and then had to wait until the maintainer released an updated version? It’s happened to me many times, the latest one being...
Game of Life in Google Sheets, written in ClojureScript. Github and demo Background story At ClojureBridge Berlin we put a lot of work into managing the sign-up process for...
When I was 16 I was visited by a man who said he had come from the future. He had traveled twenty years back to 1999 to sit down with me and have a chat. We talked for an hour...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. doto is a bit of an oddball in the Clojure repertoire,...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. I’ve always been a big UNIX fan. I can hold my own in a...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. I’m a strong believer in pair programming. It can be...
Up until recently, to use re-frame subscriptions in Reagent views, you had to use a form-2 component. A form-2 component is a function that returns another function, which does...
When learning a programming language we rarely read the reference documentation front to back. Instead someone might follow some tutorials, and look at sample code, until...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. I already showed you netcat, and how it combines...
This is a guest post by Joanne Cheng ( twitter ), a freelance software engineer and visualization consultant based in Denver, Colorado. She has taught workshops and spoken at...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. As an avid tea drinker I’ve been poring (pouring?) over...
Update: seems Stuart Sierra’s blog post has dropped off the internet. I’ve updated the link to refer to the Wayback Machine’s version instead. Setting the Stage When doing...
Making Mayonnaise Imagine you have a grandfather who’s great at making mayonnaise. He’s been making mayonnaise since before the war, and the result is truly excellent. What’s...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Here’s a little REPL helper that you may like. (defn...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Two shell commands anyone using JVM languages should be...
This is a talk I did for the “Den of Clojure” meetup in Denver, Colorado. Enjoy! Captions (subtitles) are available, and you can find the transcript below, as well as slides...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Something I’m pretty good at is coming up with random...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. When I started consulting for Nextjournal I helped them...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. An interesting aspect of the Clojure community, for...
Yesterday was the first day for me on a new job, thanks to Clojurists Together I will be able to dedicate the coming three months to improving Kaocha , a next generation test...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Ah clojure.core , it’s like an all you can eat hot-pot....
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Part of what I want to do in this series is simply point...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. I’ve been a big fan of SVG since the early 2000’s. To me...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Here’s a great life hack, to peal ginger don’t use a...
By Ariel Alexi An OOP developer finding her way in the functional world, what could go wrong? So why Clojure? This was my main question to every Clojure developer that I have...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Day 24, I made it! I did skip a day because I was sick...
By Arne Brasseur In part 1 I set the stage with a summary of what nREPL is and how it works, how editor-specific tooling like CIDER for Emacs extends nREPL through middleware,...
By Alys Brooks Recently, I was helping a coworker debug an issue with loading a Clojure dependency from a Git repository. (If you don’t know you can do this; it’s very handy....
by Arne Brasseur A key concept when working with Clojure is “the classpath”, a concept which we inherit from Clojure’s host language Java. It’s a sequence of paths that Clojure...
We are definitely back from holidays, and to demonstrate that we’re not just doing one but two live stream events! Felipe and Arne pairing Thursday 5 September, 13:00 to 15:00...
by Arne Brasseur Years ago when I was still a programming baby, I read about a concept, a way of thinking about code, and it has greatly influenced how I think about code to...
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...
By Alys Brooks We’re always excited when someone new contributes a fix, test, documentation update, or even a major new feature to our open source projects. If you’re new to...
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...
By Alys Brooks It’s easy to forget the Java Development Kit is, in fact, a kit. Many Clojure developers, myself included, rarely work with commands like java directly, instead...
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...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Clojure has this great feature called Dynamic Vars, it...
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...
by Laurence Chen There is a famous quote: Programming is thinking, not typing. After doing this job long enough, sometimes, I feel I am doing too much typing. No matter whether...
You may also like Dates in Clojure: Making Sense of the Mess Logging seems like a simple enough concept. It’s basically println with a couple of extra smarts. And yet it can be...
Six years after launching Lambda Island we’ve decided to flip the switch and make all content free. That’s right, all premium video content is now free for anyone to enjoy. Go...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. I’ve been a fan of Integrant pretty much ever since it...
By Mitesh (@oxalorg) I recently bought an M1 Macbook Air with 16 GB RAM. Below is a log of how and what I downloaded on my machine for a full stack Clojure development...
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...
By Alys Brooks The usual pitch for Clojure typically has a couple ingredients, and a key one is the REPL. Unfortunately, it’s not always clear on what ‘REPL’ means. Sometimes...
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...
by Laurence Chen Have you ever had one of the following experiences before? Your job is in customer service, and your company’s client reported that they encountered certain...
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...
Yesterday Vlaaad wrote a pretty cool blog post titled Alternative to tools.cli in 10 lines of code . It’s a great read and a very cool hack. It uses read-string to parse command...
by Ariel Alexi and Arne Brasseur Have you ever looked at your REPL and asked yourself “What am I supposed to understand from this?”. This is not just a junior thought, but one...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Here’s a little Clojure idiom that never fails to bring...
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...
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Recently I led a workshop for a client to help them...
High Quality Clojure and ClojureScript Video Tutorials
Elm and other statically typed languages have a great feature called Union Types (also called Sum Types or Algebraic Data Types). Here’s an example taken from Elm. Suppose your...
This weekend it’s Ludum Dare again, the world’s longest running game jam. The idea is that, alone or with a team, you build a game in a weekend based on a certain theme. We got...
This one had been sitting on my drive for a while, I thought it would be nice to share it with y’all. It’s a recording from a talk I did at the Clojure Berlin Meetup last...
I just released lambdaisland/uri , a pure Clojure/ClojureScript URI library. It is available on Github and Clojars . This is a small piece of the code base that powers...
Up until recently, to use re-frame subscriptions in Reagent views, you had to use a form-2 component. A form-2 component is a function that returns another function, which does...
One year ago to date I launched Lambda Island, a service that offers high quality video tutorials on web development with Clojure and ClojureScript. It’s been quite a ride. In...
The past week or so a lot of discussion and introspection has been happening in the Clojure community. Eric Normand responded to my one year Lambda Island post with some...
tl;dr: both Java and JavaScript have trouble dealing with unicode characters from Supplementary Planes , like emoji 😱💣. Today I started working on the next feature of...
In the two most recent Lambda Island episodes I covered in-depth how to create command line utilities based on Lumo , how to combine them with third party libraries, and how...
Update: seems Stuart Sierra’s blog post has dropped off the internet. I’ve updated the link to refer to the Wayback Machine’s version instead. Setting the Stage When doing...
This post explores goog.log , and builds an idiomatic ClojureScript wrapper , with support for cljs-devtools, cross-platform logging (by being API-compatible with Pedestal Log),...
Back in December I wrote about a coding pattern that I’ve been using more and more often in my work, which I dubbed “ Coffee Grinders ”. My thoughts around this were still...
tl;dr We are launching an Open Collective for Lambda Island Open Source , to help support our Open Source and Community work. Please check it out, pass it (and this article) on...
Last month marked the five year anniversary of Lambda Island. Five years since I quit my job, built a video platform, and figured out how to put together tutorial videos. It’s...
By Alys Brooks It’s been a while since our last update! Community contributors and Lambda Island team members have been busy working on new projects and improving existing ones....
This first part is a recap about nREPL, nREPL middleware, and some of the issues and challenges they pose. We’ll break up the problem and look at solutions in part 2. The REPL...
By Ariel Alexi Have you ever wondered what to do if you love cheese but you want to be a vegan and how this affects you when you learn Clojure? This was my question too. I love...
Last weekend Heart of Clojure took place in Leuven, Belgium. As one of the core organizers it was extremely gratifying to see this event come to life. We started with a vision...
Welcome to the Holy Dev newsletter, which brings you gems I found on the web, updates from my blog, and a few scattered thoughts. You can get the next one into your mailbox if you subscribe.What is happeningFulcro: I have contributed a tiny change to Fulcro that will stop begginners from scratching their heads and wondering where did their data disappear when they return a lazy list from a Pathom resolver instead of a vector. Surprisingly many have run into this lately. I have also finally created the bigger brother of my minimalist-fulcro-template-backendless, the full-stack minimalist-fulcro-template, this one built on Pathom 3.Other: I held two workshops at NDC Oslo - Web development from the future, which shares lessons from the awesome desing of Fulcro with a non-Clojure audience, and Experience interactive development while creating a REST service without a single restart, which introduces REPL-driven developement to non-clojurians. I had tiny but engaged audienced and was pleasantly surprised that anyone showed up :-). I have also started preparing an internal conference here at Ardoq, which will be fun. I had to pause my work on my rust img-mg to do other stuff (such as prepare my workshops and fix user data in production) but hope to get back soon.
Game of Life in Google Sheets, written in ClojureScript. Github and demo Background story At ClojureBridge Berlin we put a lot of work into managing the sign-up process for...
By Alys Brooks In case you haven’t been hanging out in our Discord or Slack channel or following Clojurists Together news , we’ve been accepted into the latest round of...