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...
Fast, cross-platform, standalone ClojureScript environment - anmonteiro/lumo
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. 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. 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. 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 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...
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...
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...
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...
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...
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. Here’s a little Clojure idiom that never fails to bring...
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...
Poor open-source development practices, neglect for the beginner experience, and lack of communication have come up as complaints against how Cognitect stewards Clojure. I address the complaints with a plea that we do more as a community.
Joy Clark talks with David Nolen about ClojureScript. David introduces the language and discusses the direction that the language is heading in. He talks about how the language is compiled to JavaScript and how it takes advantage of the the Google Closure Compiler. They then talk about designing user interfaces and how functional programming relates to UI design. To wrap up, David mentions different libraries and frameworks that can be used and recommends tools which can be used to get started programming with ClojureScript.
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...
Summary of the presentations in Clojure eXchange 2018 conference
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...
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...
Personal Website and Blog of Martin Klepsch
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...
One common complaint of Clojure REPLs is their [startup time](http://puredanger.github.io/tech.puredanger.com/2013/12/01/clj-problems/). Although that complaint is often somewhat unfounded (and related to tooling), it still takes the bare Clojure JAR about 1 second to start on new hardware. [Planck](http://planck-repl.org) — through bootstrapped ClojureScript, and owing to the small latency exhibited by JavaScript VMs — managed to improve the time that it takes to bootstrap a Clojure(Script) REPL. A new kid on the block promises to perform even faster. Read on!
I have dreamed about being able to compile a ClojureScript project without installing Java ever since coming to know that [ClojureScript can compile itself](http://swannodette.github.io/2015/07/29/clojurescript-17). While projects like [Planck](https://github.com/mfikes/planck) and [Lumo](2016/11/the-fastest-clojure-repl-in-the-world) can either run arbitrary ClojureScript forms at the REPL or run ClojureScript scripts, none have actually supported flat out compiling an entire ClojureScript project. Until now.