Talks
Events

Clojure Conj 2010

Talks

(not = DSL macros)

Too often, one writes a DSL by starting with macros. However, this is often a case of premature optimization. An approach centered around "DSV" (domain specific values) and an interpreter leads to greater dynamicity. Macros can be added afterwards...

Christophe Grand

Clojure

The State of Counterclockwise: Past, Present and Future

In this talk, I will present Counterclockwise aka ccw, a set of Eclipse plugins aimed at easing the development of Clojure projects. First, I will give an overview of the features, focusing on some with an interactive demo. Next, I will take my ha...

Laurent Petit

Clojure

Protocol XIII: Clojure Protocols Explained

Everyone seems to be interested in protocols, but not too many tutorials exist on the topic. I'm assuming that we'll have a fair amount of video game fans in the audience. The goal of this talk is to explain how protocols & datatypes work by analo...

Sean Devlin

Clojure

One Ring to Bind Them

Ring is a tool for writing web applications in Clojure. It provides some functionality itself, but also acts as a binding between various other Clojure web libraries. In this talk I discuss how the Ring spec enables this interoperability, show exa...

Mark McGranaghan

Clojure

Clojure Zippers

An introduction to the Clojure zip data structure, which supports fully functional tree navigation and editing. Includes a discussion of how to use the data structure effectively, as well as an overview of its performance characteristics.

Luke Vanderhart

Clojure

Fertile Ground, the Roots of Clojure

Whereby I explore some of the programming language and paradigm influences on the Clojure programming language. Clojure contains its own novelty, but its greatest strengths are built on the foundation of existing language features. I will go throu...

Michael Fogus

Clojure

Finger Trees Custom Persistent Collections

Clojure's existing persistent collection types cover many usage scenarios, but do leave a few gaps. Finger trees can fill gaps such as sorted sets with efficient support for 'nth', sequential collections that can grow at the front, the back, or ev...

Chris Houser

Clojure

Simplicity Ain't Easy

A quick review of what programmers have to say about simplicity might lead you to the following (incorrect!) conclusions: every language/design approach/tool under the sun lays claim to simplicity, usually as a key virtuesimplicity means many diff...

Stuart Halloway

Clojure

Making Leiningen Work for You

Everyone is probably familiar with the basic Leiningen workflow: new, deps, test, swank, etc. But there's more to our resourceful friend than meets the eye. Learn how to customize Leiningen for your project and how to teach it new tricks through p...

Phil Hagelberg

Clojure

Hammock Driven Development

Rich Hickey's second, "philosophical" talk at the first Clojure Conj, in Durham, North Carolina on October 23rd, 2010.

Rich Hickey

Clojure

From Concurrency to Parallelism

Concurrency is commonly mistaken for parallelism, but the two are distinct concepts. Concurrency is concerned with managing access to shared state from different threads, whereas parallelism is concerned with utilizing multiple processors/cores to...

David Liebke

Clojure

Lisp, Functional Programming, and the State of Flow

Since the beginning of computer science, many programmers have been driven by a desire to feel a oneness with the essentially abstract processes on which they're working. In no area has this been more pronounced than symbolic computation and AI. H...

Tom Faulhaber

Clojure