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