by Nathan Marz
Cascalog is a data processing library for Clojure for processing Big Data on top of Hadoop or doing analysis on a local computer from the REPL. Cascalog is inspired by Datalog and blends logic programming with functional programming.
Cascalog's power comes from its nature as a library for Clojure (instead of being a custom language like SQL or Pig). This gives Cascalog amazing capabilities for abstraction and composition. After you learn Cascalog, you wonder how you ever did data processing any other way.
This talk will cover the theory and implementation of 6 unique functional data structures in Scala. We'll start out with the concept of functional persistence and then dive right into actual data structures. Each data structure will be motivated and built up by the associated theory and ideas. All of these will be illustrated (with requisite colorful diagrams) and implemented with the necessary trappings to be a first-class Scala Collection. Finally, we'll look at some of the real-world constraints imposed by hardware architecture and the JVM itself, touching on how these constraints affect data structure design in ways that the theory doesn't show.
A dive into the arcane arts of macrology. Topics include: the basics of macros, the "times" of macros: macro-expansion, compile, and run times, hygiene, macro scoping (lexical and sub-lexical), my approach to writing macros and a case study on Trammel.
by Craig Andera
Here at Relevance, we've been building production systems with Clojure for quite some time. In the course of this, we've had to figure out how to make them fast enough to meet performance goals. In this talk, we'll examine some of the philosophy, approaches, tools, we used and some of the challenges we experienced while optimizing one particular system, a high-performance web service.
by Sam Aaron
Can programming languages help us to free our creative potential? Formalised descriptions of data, events and process have been used to great effect within industrial settings but could they also be useful in artistic contexts? This presentation introduces Overtone - a Clojure front-end to the state-of-the-art realtime sound synthesis engine SuperCollider - currently being established as a music platform for both research and performance. Overtone facilitates a truly exciting high-level exploration of musical ideas such as the design and structure of sound, the coordination of multiple concurrent performers and even new forms of musical notation. Through live coding, monome button bashing and loud music performances such as synthesized dubstep, we'll dive into the architecture of the system and explore some of the deeper computational questions that working in a musical context forces you to answer. Ultimately we will see how Clojure can manage so much more than the representation of business logic or the construction of web apps. We will cover a lot of ground - so hold onto your ears!