Searchilizer ... loading ...
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

2014-07-13 Clojure Grimoire
“Community documentation of Clojure” – A convenient table of Clojure things.
2014-06-16 Gorilla REPL
If you like the IPython Notebook but want to work in Clojure, you’re going to be very pleased.
2014-06-03 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.
2014-05-14 Clojure and the STM to the Rescue
Interesting story of how switching languages and programming paradigms a week before a deadline saved the day.
2014-05-05 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.
2014-04-24 Datomicscript
“An implementation of Datomic in-memory database and Datalog query engine in ClojureScript [...] Pre-alpha quality.”
2014-04-13 Puppet Labs Creates Clojure Framework
“Trapperkeeper is a new Clojure framework we’ve written for hosting long-running applications and services. It takes some of the lessons we’ve learned about high-performance server-side architecture over the last few years and combines them with patterns for maximizing modular, reusable code.”
2014-03-26 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.
2014-03-25 Clojure 1.6 Released
Several interesting new features and improvements; nothing radical (fortunately).
2014-03-24 Concurrency, Parallelism, and State.
A chapter of Clojure for the Brave and True, released March 24, 2014.
2014-01-02 Clojure 2013 Year in Review
Stuart Sierra’s yearly rundown: “So much has happened this year I can’t even begin to keep track of it all. What follows is my incomplete, highly-biased summary of the significant news for Clojure in 2013.”
2013-12-16 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.”
2013-12-09 Clojure High Performance Programming Review
Dmitri Sotnikov’s review of the book by Shantanu Kumar.
2013-11-30 Clojure from the Ground Up: Macros
This latest entry in the series of tutorials is a clear introduction to macros.
2013-11-21 Clojure High Performance Programming
A new book by Shantanu Kumar.
2013-11-18 Results of the 2013 State of Clojure & ClojureScript Survey
By Chas Emerick, coauthor of the book Clojure Programming.
2013-11-18 Idiomatic Clojure with LightTable
Using LightTable’s new plugins and user defined custom expressions to allow it to rewrite your code.
2013-10-25 What I’ve Learned About Making ClojureScript Applications With Pedestal
Makes the structure of Pedestal quite clear.
2013-10-23 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”.
2013-10-19 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.”

Tutorials & Documentation

Clojure Grimoire
“Community documentation of Clojure” – A convenient table of Clojure things.
Introduction to Clojure - Modern dialect of Lisp (Part 1)
From Creative Applications Network; looks like a nice tutorial, but I haven’t spent time with it yet.
ClojureScript Syntax in 15 Minutes
Very concise, with a list of resources.
Clojure Namespaces
A good, succinct tutorial.
An Om Tutorial
A tutorial on the ClojureScript Om framework, optimized for Light Table.
Writing Elegant Clojure Code Using Higher-Order Functions
Christopher Maier shows how to use partial and comp to create concise and readable programs.
One Language to Rule the Web
Clear and instructive talk by Stuart Sierra, an author of the book ClojureScript: Up and Running. Another version of the talk, where pedestal is mentioned; the slides.
Concurrency, Parallelism, and State.
A chapter of Clojure for the Brave and True, released March 24, 2014.
Clojure from the Ground Up: Macros
This latest entry in the series of tutorials is a clear introduction to macros.
Clojure High Performance Programming
A new book by Shantanu Kumar.
The Blackstag Blog Post
Guide to Programming in Clojure for Beginners
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.”
Rock Paper Scissors with core.async
A great, clear example for illustrating channels in Clojure.
Clojure core.async Walkthrough
Succinct but revealing walkthrough of the new channel library, using real code.
Web Sockets with Clojure and http-kit
Builds a small working example that also uses CORS.
Clojure Made Simple
This ebook costs $3.99. There is an excerpt of the first chapter.
Get Up and Running with Clojure
An excerpt from John Stevenson’s Clojure Made Simple, a $3.99 ebook.
Learn Clojure in 15 Minutes, Perhaps
Adam Bard’s succinct, well organized summary of the Clojure language.
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.”

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?”

Software Transactional Memory: Detailed overview of software transactional memory in Clojure.

Casting SPELs in LISP — Clojure version. The famous adventure game tutorial, adapted for this particular lisp.

Web Application Frameworks

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.”
What Web Framework Should I Use in Clojure?
Eric Normand’s answer: roll your own.
Building static sites in Clojure with Stasis
Detailed tutorial of the “no batteries included” static site generator.
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.”
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.”
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.

How to Install and Use Immutant with Noir
A useful, stepwise, very detailed example.
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.”
webfui
Client-side web framework for ClojureScript with an emphasis on simplifying DOM manipulations. See the movie.
ClojureHomePage
“ClojureHomePage is a Compojure based web framework that allows you to write the backend and frontend with Clojure.”
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.”
Hiccup
“Fast library for rendering HTML in Clojure”.
Clojure Web Server Benchmarks
Requests/sec for various web serving strategies.
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”.
Joodo
A Clojure web framework integrating Ring, Compojure, Hiccup, Speclj, and Leiningen.

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.

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.
ClojureScript Syntax in 15 Minutes
Very concise, with a list of resources.
An Om Tutorial
A tutorial on the ClojureScript Om framework, optimized for Light Table.
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.
Ohm’s Law Calculator in Om
Learn the OM framework along with Rick.
omchaya
A ClojureScript + Om client for Kandan, which is some kind of chat program. “An example app that’s actually useful.”
ClojureScript with Shoreleave
Using Shoreleave’s pubsub library with clojurescript.
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.
Om Experience Report
Adam Solove tries building something with OM and has a good time.
ClojureScript 101
Clear example from David Nolen showing how to use core.async to process events.
Himera
ClojureScript compiler as web service.
The beginners guide to Pedestal
A work in progress.
Rouge in Pedestal
Falling block game using only the data UI. Should be a good example of how to program with Pedestal.
What I’ve Learned About Making ClojureScript Applications With Pedestal
Makes the structure of Pedestal quite clear.
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.
Servant
A Clojurescript Library for Using Web Workers that claims to allow you to write “clean, multithreaded, ClojureScript.”
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.
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.”
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.

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.

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 library.
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”.
clojure-gnuplot
“clojure-gnuplot is a simple clojure interface to gnuplot. It allows interaction using lispy syntax.” Briefly described in the gnuplot Cookbook.

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

Science

hiphip
A set of macros for “simple, performant array manipulation in Clojure.”
Criterium
Benchmarking library for Clojure.
Nurokit
Toolkit for machine learning; an example.

Databases

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

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”.
unicode-math 0.2.0 released - adereth
Very cool: let’s you use Unicode math symbols directly in code.
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.”
Clojure core.async Channels
A major new library for Clojure, described by Rich Hickey with his usual conceptual clarity: “Events complect communication and flow of control.” .
Imagez
Here is an image processing library for Clojure that seems quite simple to use.
Towards core.matrix for Clojure
A justification of the project that contains a useful rundown of existing matrix libraries.
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

Gorilla REPL
If you like the IPython Notebook but want to work in Clojure, you’re going to be very pleased.
Swiss Arrows
When → and –≫ are not enough.
Scientific computing’s future: Can any coding language top a 1950s behemoth?
Check out my article in Ars Technica about Fortran, Julia, Clojure, and Haskell.
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.”
The Clojure Philosophy
Clearly discusses some of the ideas at the core of Clojure, concentrating on the differences from object-oriented languages.
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.
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.
Y Not? - Adventures in Functional Programming
Masterful talk by Jim Weirich deriving the Y-combinator with live code manipulation.
Dead simple scripts in Clojure
A Leiningen template, lein-script, which automates the use of the Leiningen plugin lein-exec.
rhymes.clj
The inimitable Paul Ford’s adventure in Clojure land, in the form of (heavily) commented code on GitHub.
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.”
Clojure High Performance Programming Review
Dmitri Sotnikov’s review of the book by Shantanu Kumar.
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.”
Learning Clojure: Efficiency and Progress IV: Avoiding Leiningen
Alternative strategies for starting up the JVM.
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.
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.
π 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.”
On the Perils of Dynamic Scope
“dynamic scope is easily abused and has a lot of unintended consequences.”
Clojure Style Guide
“best practices so that real-world Clojure programmers can write code that can be maintained by other real-world Clojure programmers.”

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

You are reading http://lee-phillips.org/Clojure/
▶  Comment   ∷     ◀Share with FacebookShare with TwitterShare with RedditShare with StumbleUponShare with DiggShare with SlashdotShare with DeliciousShare with Google+

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.

Links to products on Amazon earn me a small commission when you buy through them. Thank you for your support.
Quotilizer ... loading ...
Subscribe:   RSS icon twitter icon
Tenuously related: