Lee-Phillips.org
Clojure

Clojure

Lisp on the JVM. Can use all the Java libraries. This is the beginning skeleton of a page of Clojure links.

Clojure News

22/6/2017 11:22 A Clojure Newbie Guide: A list of links.
7/6/2017 13:55 Reducers, transducers and core.async in Clojure: “This is a whirlwind tour of some of the cool new features that appeared in Clojure in the past few years. I find it fascinating how one good idea (reducers) morphed into another (transducers), and ended up mating with yet another, apparently unrelated concept (concurrent pipelines) to produce some really powerful coding abstractions.”

31/3/2017 13:01 Manipulating the DOM with Clojure using Klipse: “The Klipse plugin is a client-side code evaluator.

This means that inside a web page, you are not limited to manipulate data, but you can also manipulate the DOM.

In this article we will show 4 approaches for manipulating the DOM with Clojure using Klipse”.
31/3/2017 17:54 Transforming Data with ClojureScript: An interactive introduction to ClojureScript.
2/3/2017 08:18 Clojure Error Message Catalog: “We are experimenting with starting a community driven catalog of common errors. [...] The idea is that people can submit an issue with a particular error, or make a pull request with the error, description and hopefuly one or two solutions to resolve it.”
11/1/2017 18:18 Reagent deep dive part 1: Gentle introduction to the React interface for Clojure.
31/10/2016 18:47 Boot: A system for using Clojure as a scripting laguage.
15/8/2016 10:24 ClojureScript now has an official website: “Most of the content from the ClojureScript wiki has been migrated into the new site and organized.”
23/5/2016 10:33 Introducing clojure.spec: “a new core library and support for data and function specifications in Clojure.” And: “Clojure is a dynamic language, and thus far we have relied on documentation or external libraries to explain the use and behavior of functions and libraries. But documentation is difficult to produce [...] Specs are expressive and precise. Including spec in Clojure creates a lingua franca with which we can state how our programs work and how to use them.”
16/5/2016 10:51 A few tips for writing macros in Clojure: “they can be tricky to get right, especially in a legible way. These guidelines will serve beginning and intermediate macro programmers well. Advanced programmers will know when to ignore the guides.”
29/4/2016 12:09 The Joys and Perils of Interactive Development: By Stuart Sierra. The moral: “The source code ≠ the program”.
19/4/2016 13:45 Clojure, The Good Parts: Some opinionated but thoughtful advice on “what a ‘good’ production Clojure app looks like in 2016.” See also the discussion on Hacker News.
27/12/2015 10:35 ClojureScript Year In Review: There are too many riches here to try to summarize.
29/9/2015 8:19 Functional-navigational programming in Clojure(Script) with Specter: This looks like a powerful and fun way to handle nested data structures.
13/9/2015 13:50 Sparklines: A clojure program for making the little graphs.
20/8/2015 20:52 Clojure Data Structures and Algorithms CookBook: A new book, announced on the Clojure in Tunisia website.
18/8/2015 8:29 Parens of the Dead: “A screencast series of zombie-themed games written with Clojure and ClojureScript.”
7/8/2015 16:11 Neanderthal: Fast Native Matrix and Linear Algebra in Clojure: “Neanderthal implements BLAS algorithms and abstracts most of that complexity for vector and matrix computations away, behind a frendly Clojure API.[...] Optimized GPU engine 500x faster for large matrices than the fastest Java libraries. Handcrafted JNI bindings for machine-optimized ATLAS BLAS, 10x faster than optimized Java libraries on the CPU.”
31/7/2015 14:11 ClojureScript Next: ClojureScript can now compile itself. This means that you can make a web page that allows the user to type in ClojureScript and evaluate it. That, of course, is just the tip of the iceberg of awesomeness.
21/2/2015 9:16 Visualizing Twitter Connections with D3 and ClojureScript: Case study for importing and using a javascript library. His example output is live: you can rearrange the graph with the mouse.

Tutorials & Documentation

Clojure Made Simple: This ebook costs .99. There is an excerpt of the first chapter.
20 Cool Clojure Functions: “One of my favorite things about Clojure is that there are just so many really neat, useful functions and macros built into the language, and I’m constantly learning about new ones that I didn’t know existed. I thought I would share with you some of my favorites.”
Clojure.core: Batteries (almost) included: “a guided tour through some of the many libraries available from the Clojure team that don’t come distributed with Clojure.”
Clojure cheatsheet: A convenient, hyperlinked table of contents of the Clojure language.
Get Up and Running with Clojure: An excerpt from John Stevenson’s Clojure Made Simple, a $3.99 ebook.
Clojure core.async Walkthrough: Succinct but revealing walkthrough of the new channel library, using real code.
ClojureDocs - clojure.core/identity: Uses of the identity function; useful one-liners.
Android App Development with Clojure: An Interactive Tutorial: “This tutorial is directed towards Clojure programmers who are seeking an alternative to the Java language for Android development.”
Clojure Programming: A book by Chas Emerick, Brian Carper, and Christophe Grand.
Clojure Grimoire: “Community documentation of Clojure” – A convenient table of Clojure things.
Rock Paper Scissors with core.async: A great, clear example for illustrating channels in Clojure.
Clojure Cookbookis Coming: “We want this O'Reilly cookbook to be a comprehensive resource containing the collective wisdom of Clojurists from every domain. [...] Share some code. Explain it. Be a part of Clojure history. [...] O’Reilly will sell Clojure Cookbook in physical form, and will also make it available as an ebook (in multiple formats), freely redistributable under a Creative Commons license.”
Clojure High Performance Programming: A new book by Shantanu Kumar.
Reagent Rocks!: Excellent, concise introduction to using Reagent.

A nice, gentle introduction.

Thorough and quite clear survey, from language basics up to GUI desktop and web applications.

Quick reference.

Very clear essay on how to write a macro.

Thorough introduction assuming relatively little on the part of the reader.

A busy person’s introduction to Clojure: “Have a few hours spare and fancy getting to know Clojure and ClojureScript?”

Clojure version. The famous adventure game tutorial, adapted for this particular lisp.

Web Application Frameworks

C2: Clojure(Script) data visualization: “C2 is a Clojure and ClojureScript data visualization library heavily inspired by Mike Bostock’s Data Driven Documents. C2 lets you declaratively create HTML and SVG markup based on data”.
What Web Framework Should I Use in Clojure?: Eric Normand’s answer: roll your own.
Closp Documentation: “Closp is a leiningen template that generates everything you need to get started with clojure web development.”
Clojure Web Server Benchmarks: Requests/sec for various web serving strategies.
webfui: Client-side web framework for ClojureScript with an emphasis on simplifying DOM manipulations. See the movie.
How to Install and Use Immutant with Noir: A useful, stepwise, very detailed example.
Shoreleave: “Shoreleave is a collection of integrated libraries that focuses on:
  • Security
  • Idiomatic interfaces
  • Common client-side strategies
  • HTML5 capabilities
  • ClojureScript's advantages

It builds upon efforts found in other ClojureScript projects, such as Fetch and ClojureScript:One.”

In version 0.2.2, and I’ve heard good things about it.

Pedestal: Build web apps in Clojure: This is the current incarnation of the ClojurescriptOne project. “Built with components that play nice together & can be re-assembled at will.”
Building static sites in Clojure with Stasis: Detailed tutorial of the “no batteries included” static site generator.
5 Lessons Learned Writing a Clojure Web App: Practical lessons resulting from recent experience.
ClojureHomePage: “ClojureHomePage is a Compojure based web framework that allows you to write the backend and frontend with Clojure.”
Hiccup: “Fast library for rendering HTML in Clojure”.
Taking Off the Blindfold: “Om now supports a very useful notion called instrumenting which allows us to peek under the blindfold without changing any of the original code.”
Liberator: “Liberator is a Clojure library that helps you expose your data as resources while automatically complying with all the relevant requirements of the HTTP specification (RFC-2616). Your resources will automatically gain useful HTTP features, such as caching and content negotiation. Liberator was inspired by Erlang’s Webmachine. [...] liberator will enable you to create application according to a REST architecture.”
Luminus: “a micro-framework based on a set of lightweight libraries. It aims to provide a robust, scalable, and easy to use platform. With Luminus you can focus on developing your app the way you want without any distractions.”
Hoplon: “Write every­thing in Clojure and Clojure­Script, clientside and server­side. Even the page markup is ClojureScript that is evaluated to produce the DOM.” And: “Use a spreadsheet-like dataflow programming environment to manage client state.”

Nice tutorial on “Developing and Deploying a Simple Clojure Web Application” using Compojure and Hiccup.

Noire, a “micro-framework;” may be deprecated in favor of Compojure, etc.

The request and response guts that most of the frameworks seem to be based on is called Ring.

Much more than just a web application framework, Immutant is an “Application Platform.”

ClojureScript

Clojure implemented in javascript aimed at Google Closure. Has most of Clojure except for concurrency and the Java interface (for obvious reasons). Write Gmail in lisp.

ClojureScript: Up and Running: “Learn how to build complete client-side applications with ClojureScript”.
An Om Tutorial: A tutorial on the ClojureScript Om framework, optimized for Light Table.
BirdWatch with ClojureScript and Om explained: Matthias Nehlsen explains how he wrote a (very nice) front end to his interesting BirdWatch application, which presents term statistics for tweets that satisfy a search string.
re-com Demo: “Re-com is a library of ClojureScript UI components, built on top of Reagent.”
Ohm’s Law Calculator in Om: Learn the OM framework along with Rick.
ClojureScript Tutorials: Mimmo Cosenza’s series of tutorials “will guide you in creating, setting up and running simple CLJS projects. The series follows a progressive enhancement of projects themselves.”
Servant: A Clojurescript Library for Using Web Workers that claims to allow you to write “clean, multithreaded, ClojureScript.”
Functional programming on frontend with React & ClojureScript: “In this blog post I will show advantages of React way of building scalable and well performing web applications with taste of functional programming. In this tutorial we will introduce basics of ClojureScript as well and show how React plays nicely with ClojureScript through one of its wrappers called Reagent. Working app is included as well.”
Modern ClojureScript: “Modern ClojureScript (modern-cljs) is a series of tutorials that guide you in creating and running ClojureScript (CLJS) projects.”
Waitin' on Leiningen: David Nolen explains how to decrease clojurescript startup time.
Parens of the Dead: “A screencast series of zombie-themed games written with Clojure and ClojureScript.”
ClojureScript Syntax in 15 Minutes: Very concise, with a list of resources.
Exploring the Clojurescript REPL: “A beginner-level exploration of a ClojureScript REPL session complete with mistakes of the type made by me so that you might avoid these common pitfalls when starting your own ClojureScript adventures.”
The beginners guide to Pedestal: A work in progress.
Devcards: When using clojurescript with React or Om, Devcards allows you to see different states of your UI in the browser at the same time.
Om Github Page: With useful lists of community resources.
ClojureScript now has an official website: “Most of the content from the ClojureScript wiki has been migrated into the new site and organized.”
The Future of JavaScript MVC Frameworks: David Nolen introduces OM, a library for using ClojureScript with React.js. A fascinating story showing how a cleaner high-level view can lead to significant gains in efficiency as well as more enjoyable coding.
cljs-template: One way to learn and get started with clojurescript.
Bringing Functional to the Frontend: Clojure + Clojurescript for the Web: The Prismatic team’s transition to ClojureScript, with the creation of a new ClojureScript templating library as a side-effect.
ClojureScript Next: ClojureScript can now compile itself. This means that you can make a web page that allows the user to type in ClojureScript and evaluate it. That, of course, is just the tip of the iceberg of awesomeness.
lein-figwheel: “Figwheel builds your ClojureScript code and hot loads it into the browser as you are coding”.
Reagent Rocks!: Excellent, concise introduction to using Reagent.
Om Experience Report: Adam Solove tries building something with OM[@NolenAnnouncesOM] and has a good time.
Local State, Global Concerns: “CircleCI’s recently open-sourced frontend is built in ClojureScript using Om.”
A conceptual look at Om: How the concepts used in the clojurescript library differ from MVC, and more.
ClojureScript: Lisp’s Revenge: David Nolen, a javascript programmer for the New York Times, gives a clear and inspiring talk, rich with demos, illustrating the joy of using ClojureScript. The movie is presented superbly as well: you can actually read the code.
Perfect ClojureScript Development Environment With Vim: Anton Astashov’s setup for immediate load from Vim to the browser.
Connecting to your creation: Changing the rules of a game as you play it by editing the ClojureScript source.
Tetris in ClojureScript: Uses Reagent. A very nice example.
Himera: ClojureScript compiler as web service.
Tetris in Clojurescript: A set of animated slides building up the game while showing code you can interact with.
Visualizing Twitter Connections with D3 and ClojureScript: Case study for importing and using a javascript library. His example output is live: you can rearrange the graph with the mouse.
Faster, Better DOM manipulation with Dommy and ClojureScript: “We built dommy because we felt that a ClojureScript DOM library could be a simpler, faster, and better version of jQuery that fits organically into expressive functional code.”
Interactive Programming in ClojureScript: A Leiningen plugin (Figwheel) that gets the browser reloading on save, to allow simple interactive programming in ClojureScript. Includes a movie of the author live-coding a flappy bird game.
Andrey Antukh’s ClojureScript Tutorial: Although the English is a little rough, this is a useful resource for getting started. Includes an introduction to Om.
Rouge in Pedestal: Falling block game using only the data UI. Should be a good example of how to program with Pedestal.
omchaya: A ClojureScript + Om client for Kandan, which is some kind of chat program. “An example app that’s actually useful.”
ClojureScript Quick Start: David Nolen explains how to set up your workflow. This page has been around for a long time and the author keeps it up to date.
Moving Things with Clojurescript and Your Phone Accelerometer: A detailed example shows you how to build a web app that moves an object around on the screen when you tilt your device.
Re-frame: A framework for writing single page applications with clojurescript and Reagent.
ClojureScript 101: Clear example from David Nolen showing how to use core.async to process events.
Eric Normand on Core.async: Really helps you understand what core.async does for you.
ClojureScript: Lisp’s Revenge: David Nolen’s talk with live browser-connected REPL action.

Video of presentation by Clojure’s author is quite persuasive.

“A short demonstration of using the ClojureScript browser-connected REPL to work with the twitterbuzz sample application.” This little movie by Brenton Ashworth is quite cool. He locally connects the ClojureScript REPL to a browser and can type ClojureScript whose side effects appear as browser behaviors.

ClojureScript One is a complete example of an implementation of ClojureScript to create a “single page” application using the same language on the client and the server. This has been superceded by Pedestal.

Tools, Libraries

Editing

fireplace.vim: VimClojure is being replaced by this. I’ve been pretty happy with ScreenSend (used with paredit.vim), but this looks like another good way to go. (Previously named “foreplay.vim”.)
Cider: Interactive editing system for Emacs.

Slimv is “a SWANK client for Vim, similarly to SLIME for Emacs [...] Slimv opens the lisp REPL [...] inside a Vim buffer [...] Slimv supports SLIME’s debugger, inspector, profiler, cross reference, arglist, indentation, symbol name completion functions.” Of course this is for any lisp, but I have the impression that’s it’s popular with Clojure.

VimClojure This has been superseded by fireplace.vim. “[O]ne of the most sophisticated editing environments for Clojure. It provides syntax highlighting, indenting and command completion. [...] If requested VimClojure also provides a SLIME like interface to dynamically work with Clojure code. For this to work the included Nailgun server must be running.” I guess this can include the functionality of Slimv.

Plotting, Graphics

Rhizome: Graphiv diagrams from Clojure; extracted from the Channels[@clojure-Channels-ztellmanlam] library.
clojure-gnuplot: “clojure-gnuplot is a simple clojure interface to gnuplot. It allows interaction using lispy syntax.” Briefly described in the gnuplot Cookbook[@gnuplotCookbook].
C2: Clojure(Script) data visualization: “C2 is a Clojure and ClojureScript data visualization library heavily inspired by Mike Bostock’s Data Driven Documents. C2 lets you declaratively create HTML and SVG markup based on data”.

Incanter is something like R for plotting, statistics, and stuff.

Science

Databases

OJ: “A refreshing Clojure library for talking to your database, heavily influenced by Ring.”
Korma: “Korma is a domain specific language for Clojure that takes the pain out of working with your favorite RDBMS.” It stays close to SQL, but is a nice abstraction.

GUI

Make using Swing easier with Seesaw.

Other Libaries

Onyx: This is “a masterless, cloud scale, fault tolerant, distributed computation system.”
Clojure core.async Channels: A major new library for Clojure[@clojure], described by Rich Hickey with his usual conceptual clarity: “Events complect communication and flow of control.” .
Functional-navigational programming in Clojure(Script) with Specter: This looks like a powerful and fun way to handle nested data structures.
Neanderthal: Fast Native Matrix and Linear Algebra in Clojure: “Neanderthal implements BLAS algorithms and abstracts most of that complexity for vector and matrix computations away, behind a frendly Clojure API.[...] Optimized GPU engine 500x faster for large matrices than the fastest Java libraries. Handcrafted JNI bindings for machine-optimized ATLAS BLAS, 10x faster than optimized Java libraries on the CPU.”
unicode-math 0.2.0 released - adereth: Very cool: let’s you use Unicode math symbols directly in code.
Towards core.matrix for Clojure: A justification of the project that contains a useful rundown of existing matrix libraries.
Grenchman: A persistent JVM/nREPL that maintains state and allows you to run clojure code without waiting for JVM startup.
Clatrix: A matrix library. “Being implemented as a data type around the native BLAS hooks of jblas gives it speed. Being implemented as a Clojure sequence makes it clever.”
Chord: “A library designed to bridge the gap between the triad of CLJ/CLJS, web-sockets and core.async [...] Chord only has one function, chord.client/ws-ch, which takes a web-socket URL and returns a channel. When the connection opens successfully, this channel then returns a two-way channel that you can use to communicate with the web-socket server”.
Imagez: Here is an image processing library for Clojure that seems quite simple to use.
Channels: “A channel represents a stream of messages. It consists of two parts, a node, which propagates messages downstream, and a queue, which stores messages when there are no downstream nodes.”

More Clojure

Clojure core.async Channels: A major new library for Clojure[@clojure], described by Rich Hickey with his usual conceptual clarity: “Events complect communication and flow of control.” .
Clojure High Performance Programming: “Clojure High Performance Programming is a practical, to-the-point guide that shows you how to evaluate the performance implications of different Clojure abstractions, learn about their underpinnings, and apply the right approach for optimum performance in real-world programs.”
BirdWatch with ClojureScript and Om explained: Matthias Nehlsen explains how he wrote a (very nice) front end to his interesting BirdWatch application, which presents term statistics for tweets that satisfy a search string.
Tweeting from Clojure: “a small Clojure application that will update my Twitter status whenever I post a new article”.
A few tips for writing macros in Clojure: “they can be tricky to get right, especially in a legible way. These guidelines will serve beginning and intermediate macro programmers well. Advanced programmers will know when to ignore the guides.”
Clojure High Performance ProgrammingReview: Dmitri Sotnikov’s review of the book by Shantanu Kumar.
Clojure Cookbookis Coming: “We want this O'Reilly cookbook to be a comprehensive resource containing the collective wisdom of Clojurists from every domain. [...] Share some code. Explain it. Be a part of Clojure history. [...] O’Reilly will sell Clojure Cookbook in physical form, and will also make it available as an ebook (in multiple formats), freely redistributable under a Creative Commons license.”
Transducers are fundamental: Ignacio Thayer: “Transducers are being introduced in the next version of clojure. There are a few posts about them already, but I found the notion of transducers more elegant and natural than I have seen described. They simplify a lot of disparate clojure concepts and make it easier to write more performant code without any loss in generality. They are quite beautiful, actually, and I believe the concept is elemental, like function composition.”
Clojure Destructuring Tutorial and Cheat Sheet: Under construction, but already useful.
Planet Clojure: A “meta blog that collects posts from the blogs of various Clojure hackers and contributors.”
clojure-gnuplot: “clojure-gnuplot is a simple clojure interface to gnuplot. It allows interaction using lispy syntax.” Briefly described in the gnuplot Cookbook[@gnuplotCookbook].
Y Not? - Adventures in Functional Programming: Masterful talk by Jim Weirich deriving the Y-combinator with live code manipulation.
Fast JVM launching: This may make the use of clojure[@clojure] for utility scripts more palatable.
Reagent deep dive part 1: Gentle introduction to the React interface for Clojure.
Connecting to your creation: Changing the rules of a game as you play it by editing the ClojureScript source.
Swiss Arrows: When → and –≫ are not enough.
Rock Paper Scissors with core.async: A great, clear example for illustrating channels in Clojure.
Interactive Programming in ClojureScript: A Leiningen plugin (Figwheel) that gets the browser reloading on save, to allow simple interactive programming in ClojureScript. Includes a movie of the author live-coding a flappy bird game.
Clojure Data Structures and Algorithms CookBook: A new book, announced on the Clojure in Tunisia website.
Nurokit: Toolkit for machine learning;an example.
Hickey Talk on Transducers: A good presentation on YouTube with readable slides.
Clojure in the Open: “a weekly newsletter bringing interesting and simple tasks from small to medium open source projects that anyone can contribute to.” Seems like a great idea. A bit hard to read with the current low-contrast style, but they’re working on it.
IClojure: “An Interactive Clojure repl, inspired by IPython.”
Rhizome: Graphiv diagrams from Clojure; extracted from the Channels[@clojure-Channels-ztellmanlam] library.
Korma: “Korma is a domain specific language for Clojure that takes the pain out of working with your favorite RDBMS.” It stays close to SQL, but is a nice abstraction.
Processing documents with transducers: “In this article we will develop a set of transducers which can be composed to extract data from an XML document (although the principles here can be applied to any tree-structured format, including JSON).”
core.matrix performance: core.matrix is a library for Clojure that allows fast arraywise arithmetic on multidimensional arrays. The performance in these benchmarks is very impressive.
ClojureDocs - clojure.core/identity: Uses of the identity function; useful one-liners.
On the Perils of Dynamic Scope: “dynamic scope is easily abused and has a lot of unintended consequences.”
Code Fatigue: A an example of how using advanced language features can make a program (clojure[@clojure] in this case) easier to understand, by reducing the number of things you need to keep in your head to form a mental model of the code.
Rapid Scaling with Clojure and AWS: Instructive story about some unconventional technology decisions.
Clojure High Performance Programming: A new book by Shantanu Kumar.
Clojure Style Guide: “best practices so that real-world Clojure programmers can write code that can be maintained by other real-world Clojure programmers.”
Clojure Web Security: Aaron Bedra’s talk about the scary state of security in the current crop of Clojure web applications, and what can be done about it. From the 2014 ClojureWest conference.
Talk on a New Kind of REPL: This video of Kovas Boguta’s talk on Session, a new idea for richly interacting with Clojure, devotes its first half to demonstrating how cool Mathematica is.
Perfect ClojureScript Development Environment With Vim: Anton Astashov’s setup for immediate load from Vim to the browser.
rhymes.clj: The inimitable Paul Ford’s adventure in Clojure land, in the form of (heavily) commented code on GitHub.
Visualizing Twitter Connections with D3 and ClojureScript: Case study for importing and using a javascript library. His example output is live: you can rearrange the graph with the mouse.
Faster, Better DOM manipulation with Dommy and ClojureScript: “We built dommy because we felt that a ClojureScript DOM library could be a simpler, faster, and better version of jQuery that fits organically into expressive functional code.”
Leiningen Templates with Arguments: Templates for templates. Seems useful.
omchaya: A ClojureScript + Om client for Kandan, which is some kind of chat program. “An example app that’s actually useful.”
ClojureScript Macro-Functions: In ClojureScript, unlike Clojure, a macro and a function can share a name. This article explores the implications.
Moving Things with Clojurescript and Your Phone Accelerometer: A detailed example shows you how to build a web app that moves an object around on the screen when you tilt your device.
Using Clojure At MixRadio: “we’ve been using Clojure to power our backend at MixRadio. We’ve moved from a largely Java platform to one where almost all new development is done in Clojure.”
Web Sockets with Clojure and http-kit: Builds a small working example that also uses CORS.
Macros are Hard!: Talk with slides by David McNeil shows how you need to think deeply about what’s going on behind the scenes in order to understand what is happening with macros in Clojure[@clojure].
The Beauty of Clojure: Keep your code idiomatic by keeping functions in the foreground.
Ohm’s Law Calculator in Om: Learn the OM framework along with Rick.
Towards core.matrix for Clojure: A justification of the project that contains a useful rundown of existing matrix libraries.
Parens of the Dead: “A screencast series of zombie-themed games written with Clojure and ClojureScript.”
Clojure Error Message Catalog: “We are experimenting with starting a community driven catalog of common errors. [...] The idea is that people can submit an issue with a particular error, or make a pull request with the error, description and hopefuly one or two solutions to resolve it.”
Clojure 2014 Year in Review: 2014 saw significant inroads into the business world.
Gorilla REPL: If you like the IPython Notebook but want to work in Clojure, you’re going to be very pleased.
11 Free Clojure Ebooks: List with summaries compiled Feb., 2014.
eastwood - a Clojure lint tool: “Eastwood is a clojure lint tool which uses the analyze library to inspect namespaces and report possible problems. Currently it should works with projects running Clojure 1.3.0 and newer.”
Inside Clojure: “Tales of Developing Clojure”: a guide to concepts.
Dead simple scripts in Clojure: A Leiningen template, lein-script, which automates the use of the Leiningen plugin lein-exec.
OJ: “A refreshing Clojure library for talking to your database, heavily influenced by Ring.”
Deploying a Clojure web app to a VPS: Adam Bard: “So you wrote an app. Great! Next step is to put it somewhere where people can use it. This tutorial will walk you through the process of deploying your app.”
Clojure core.async Walkthrough: Succinct but revealing walkthrough of the new channel library, using real code.
Composing Music by Composing Functions: Chris Ford’s wonderful demonstration of building up musical ideas through composing clojure[@clojure] functions, culminating in assembling an approximation to a bit of Bach’s Goldberg Variations. Includes a fascinating psychoacoustic detour.
Design, Composition and Performance: All of Rich Hickey’s presentations are worth watching. This one is astonishing in the depth of its insights and its use of brilliant, multilayered analogies.
The Newbie’s Guide to Learning Clojure: Tips and links for learning the Clojure language.
Quil: Clojure drawing library: Interface to Processing. And a recent entry in the growing tradition of exuberantly literary github pages.
Eric Rochester’s Clojure Series: Shows how to use Clojure for several linguistic tasks, resulting in a meandering and friendly tutorial.
Not Code as Data: Mark Bastian discovers that Java tutorialists have begun falsely claiming that Java now features “code as data.” He explains what that really means, using Clojure examples.
Prismatic’s Graph Library for Clojure: “Graph is a simple, declarative abstraction to express compositional structure.”
Example using transducers: ... with core.async.
Clojure Programming: A book by Chas Emerick, Brian Carper, and Christophe Grand.
Grenchman: A persistent JVM/nREPL that maintains state and allows you to run clojure code without waiting for JVM startup.
Learn Clojure in 15 Minutes, Perhaps: Adam Bard’s succinct, well organized summary of the Clojure language.
Introducing clojure.spec: “a new core library and support for data and function specifications in Clojure.” And: “Clojure is a dynamic language, and thus far we have relied on documentation or external libraries to explain the use and behavior of functions and libraries. But documentation is difficult to produce [...] Specs are expressive and precise. Including spec in Clojure creates a lingua franca with which we can state how our programs work and how to use them.”
π in Clojure: “After reading Carl Sagan’s Contact I’m crushing on π, so I looked it up on Wikipedia, where, of course, several algorithms for computing it are described in detail. One of them, the Brent-Salamin algorithm, has the really neat property of doubling the number of digits it gets right on each iteration.”
Himera: ClojureScript compiler as web service.
Building Clojure services at scale: Joseph Wilk’s experiences from Soundcloud.
Scientific computing’s future: Check out my article in Ars Technica about Fortran, Julia, Clojure, and Haskell.
ClojureScript Quick Start: David Nolen explains how to set up your workflow. This page has been around for a long time and the author keeps it up to date.
Learning Clojure: Efficiency and Progress IV: Avoiding Leiningen: Alternative strategies for starting up the JVM.
Imagez: Here is an image processing library for Clojure that seems quite simple to use.
Simple Made Easy: Rich Hickey, the author of Clojure[@clojure], explains the difference between simple and easy in this often humorous talk. This is from October 2011, but I just found out about it, and it’s well worth sitting through.
Get going with core.async: A website devoted to tutorital instruction on the subject of the title.
Servant: A Clojurescript Library for Using Web Workers that claims to allow you to write “clean, multithreaded, ClojureScript.”
unicode-math 0.2.0 released - adereth: Very cool: let’s you use Unicode math symbols directly in code.
The Joy of Clojure: A popular book.
The Curious Clojurist: Neal Ford’s engaging introductory lecture.
Clojure at a Newspaper: “fundamentally we hadn’t written much code. I raised this sheepishly with the CTO and his response was: ‘that’s how I know it’s the right solution.’ Clojure is the winner here.”
Fibonacci Numbers in the Real World: The best way to calculate Fibonacci numbers on a real computer depends on what you want to know about them.
Dorothy: Graphviz from the comfort of Clojure: A domain specific language for drawing network graphs.
Programming Clojure: Not to be confused with Clojure Programming.
Sparklines: A clojure program for making the little graphs.
Idiomatic Clojure with LightTable: Using LightTable’s new plugins and user defined custom expressions to allow it to rewrite your code.
The Clojure Philosophy: Clearly discusses some of the ideas at the core of Clojure, concentrating on the differences from object-oriented languages.
Clojure: Lisp on the JVM. Can use all the Java libraries. This is the beginning skeleton of a page of Clojure links.
Devcards: When using clojurescript with React or Om, Devcards allows you to see different states of your UI in the browser at the same time.

Manipulating the DOM with Clojure using Klipse: “The Klipse plugin is a client-side code evaluator.

This means that inside a web page, you are not limited to manipulate data, but you can also manipulate the DOM.

In this article we will show 4 approaches for manipulating the DOM with Clojure using Klipse”.
ClojureScript now has an official website: “Most of the content from the ClojureScript wiki has been migrated into the new site and organized.”
Clojure cheatsheet: A convenient, hyperlinked table of contents of the Clojure language.
Neanderthal: Fast Native Matrix and Linear Algebra in Clojure: “Neanderthal implements BLAS algorithms and abstracts most of that complexity for vector and matrix computations away, behind a frendly Clojure API.[...] Optimized GPU engine 500x faster for large matrices than the fastest Java libraries. Handcrafted JNI bindings for machine-optimized ATLAS BLAS, 10x faster than optimized Java libraries on the CPU.”
The many flavors of concurrency in Clojure: Adam Bard solves an inherently parallel problem using four approaches to concurrency, all on one very instructive page.
Lazy Physics (and Clojure): Processing time series data from particle physics experiments using Clojure’s lazy sequences.
The Joys and Perils of Interactive Development: By Stuart Sierra. The moral: “The source code ≠ the program”.
Criterium: Benchmarking library for Clojure.
Channels: “A channel represents a stream of messages. It consists of two parts, a node, which propagates messages downstream, and a queue, which stores messages when there are no downstream nodes.”
The Clojure Toolbox: “A categorised directory of libraries and tools for Clojure.”
Local State, Global Concerns: “CircleCI’s recently open-sourced frontend is built in ClojureScript using Om.”
A conceptual look at Om: How the concepts used in the clojurescript library differ from MVC, and more.
Clojure.core: Batteries (almost) included: “a guided tour through some of the many libraries available from the Clojure team that don’t come distributed with Clojure.”
Functional-navigational programming in Clojure(Script) with Specter: This looks like a powerful and fun way to handle nested data structures.
New Clojure Threading Macros: Draft code from Rich Hickey.
hiphip: A set of macros for “simple, performant array manipulation in Clojure.”
Chord: “A library designed to bridge the gap between the triad of CLJ/CLJS, web-sockets and core.async [...] Chord only has one function, chord.client/ws-ch, which takes a web-socket URL and returns a channel. When the connection opens successfully, this channel then returns a two-way channel that you can use to communicate with the web-socket server”.
Amazing LISP Books living again in Clojure: Where to find “translations” of some classic Lisp books into Clojure.
Onyx: This is “a masterless, cloud scale, fault tolerant, distributed computation system.”
Clojure has a Problem with Async: The author believes that Clojure has a disadvantage compared with Node in the I/O area; commenters disagree.
Clojure, The Good Parts: Some opinionated but thoughtful advice on “what a ‘good’ production Clojure app looks like in 2016.” See also the discussion on Hacker News.
Clojure Quick Reference: From July 2010 (Clojure 1.2), a conveniently categorized index into the language.
Eric Normand on Core.async: Really helps you understand what core.async does for you.
Clatrix: A matrix library. “Being implemented as a data type around the native BLAS hooks of jblas gives it speed. Being implemented as a Clojure sequence makes it clever.”
Practical Clojure: Book from 2010.
Clojure in Action: A book with a practical approach.
Clojure 1.4 Announced: A new version of this extremely practical Lisp has been released. An interesting new feature is Reader Literals, which function as a kind of namespaced reader macro.
Boot: A system for using Clojure as a scripting laguage.
Tim Bray: Eleven Theses on Clojure: Some interesting early (2009) thoughts.

An assortment of interesting topics, from beginning to advanced, at Learning Clojure.

Comments

Comments are handled through email. Please send mail to Clojure__comment@lee-phillips.org if you would like me to include it here. I will never expose your email address. Let me know if you want me to hide your name, as well.

▶  Comment   ∷     ◀Share with FacebookShare with TwitterShare with RedditShare with StumbleUponShare with DiggShare with SlashdotShare with DeliciousShare with Google+
lee-phillips.org is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com.
Quotilizer ... loading ...
Subscribe:   RSS icon twitter icon
Tenuously related: