Conference Info

  1. Hotel Info

    Reserve your hotel at the Embassy Suites Alexandria - Old Town $189/night - includes parking, Wi-Fi, breakfast and daily happy hour.


    If the conference hotel is sold out, we recommend booking at the
    Hilton Alexandria Old Town

  2. The Venue

    This year's conj will be held at George Washington Masonic Memorial - Memorial Theater

Transportation Info

Speakers

Schedule

Pre-Conference Events

Scheme Workshop
We’re pleased to announce that the Scheme & Functional Programming Workshop will be co-located with Clojure/conj this year.

  • Wednesday, November 13, 2013 9-5pm at the Embassy Suites Alexandria - Old Town.
  • Free for Clojure/conj attendees with promo code ClojureConj
  • Registration Details

Thursday, November 14

8:00-8:45

Registration & Coffee

George Washington Masonic Memorial
8:45-9:00

Welcome & Announcements

George Washington Masonic Memorial
9:00-9:40

Stu Halloway

data.fressian
9:50-10:30

Mike Anderson

Enter the Matrix
10:30-11:00

Break

11:00-11:40

Jennifer Smith

The Internet of Strings: Getting Smarter about Web Integration
11:50-12:30

Aria Haghighi

Prismatic's Schema for Server and Client-Side Data Shape Declaration and Validation
12:40-1:40

Lunch (provided)

1:50-2:30

Doug Selph

Personalized Medicine, Powered by Clojure
2:40-3:20

Chris Houser / Jonathan Claggett

Illuminated Macros
3:20-3:50

Break

3:50-4:30

Nada Amin / William Byrd

From Greek to Clojure!
4:40-5:40

Rich Hickey

Harmonikit
7:00-10:00

Unsessions

Embassy Suites Alexandria - Sign Up Here »

Friday, November 15

8:00-8:45

Registration & Coffee

George Washington Masonic Memorial
8:45-9:00

Welcome & Announcements

George Washington Masonic Memorial
9:00-9:40

Carin Meier

Learning to Talk to Machines with Speech Acts
9:50-10:30

Timothy Baldridge

core.async
10:30-11:00

Break

11:00-11:40

Sam Ritchie

Cascalog 2- Streaming MapReduce in Clojure
11:50-12:30

Michael O'Keefe

Predicting Vehicle Usage with Clojure
12:40-1:40

Lunch (provided)

1:50-2:30

Lightning Talks

Lightning Talks
2:40-3:20

Antonio Andrade

Building a Data Platform with Datomic
3:20-3:50

Break

3:50-4:30

David Pollak

Don't Shed a Tier for Me, Clojure
4:40-5:40

Tim Ewald

Clojure: Programming with Hand Tools
7:30-11:30

Party

George Washington Masonic Memorial

Saturday, November 16

8:00-8:45

Registration & Coffee

George Washington Masonic Memorial
8:45-9:00

Welcome & Announcements

George Washington Masonic Memorial
9:00-9:40

Thomas Kristensen

Propagators in Clojure
9:50-10:30

Toby Crawley

Developing Asynchronous Polyglot Applications with vert.x
10:30-11:00

Break

11:00-11:40

Philipp Meier

Liberator - Free your Data
11:50-12:30

Fogus

Zeder - Production Rule Systems in Clojure
12:40-1:40

Lunch (provided)

1:50-2:30

Andy Keep

Writing a Nanopass Compiler
2:40-3:20

Russ Olsen

To the Moon!

Sponsors

Interested in sponsoring? Download the Prospectus

×

Andy Keep

@andykeep

About Andy

Andy is a postdoc at the University of Utah, currently working on malware detection in Android Apps, using both Scala and miniKanren to write abstract analyzers in Matt Might's lab. Andy completed his Ph.D. at Indiana University, defending his dissertation, "A Nanopass Framework for Commercial Compiler Development", in December 2012 and will be presenting a paper related to this work at this year's International Conference on Functional Programming. This project focused on replacing Chez Scheme's compiler with a nanopass compiler, along with his adviser R. Kent Dybvig. Before returning to graduate school in 2007, Andy worked in industry as a web developer, first for the consulting firms Razorfish and Gotham Broadband, along with some independent consulting work for Viacom, and later worked full time at Teach For America, maintaining both front-end and back-end web applications.

×

Antonio Andrade

@a2ndrade

About Antonio

Antonio is a software engineer with a background in object-oriented, functional and array-based programming. He's deeply familiar with the challenges of building a cloud-based, enterprise data platform (he currently works at Appian Corporation, in the DC area, doing exactly that). In his free time, he's been figuring out how to solve some of those challenges using Clojure & Datomic.

×

Aria Haghighi

@aria42

About Aria

Aria Haghighi is the co-founder and CTO of Prismatic, the web and mobile news service growing fast thanks to rich relevance and beautiful design. He holds a PhD in Computer Science from the University of California, Berkeley, specializing in Statistical Natural Language Processing and Machine Learning. During his graduate studies, he published over 20 papers in top conferences, was a Microsoft Research Fellow, and won multiple awards for his research and teaching. He also holds a BS in Mathematics with distinction from Stanford University.

×

Carin Meier

@carinmeier

About Carin

Carin started off as a professional ballet dancer, studied Physics in college, and has been developing software for both the enterprise and entrepreneur ever since. She has a thing for Clojure and can be usually found with a cup of tea in her hand, hacking on her Roomba and AR Parrot Drone.

She hails from Cincinnati, where she also helps organize the Cincinnati Functional Programmers and Clojure Code and Coffee user groups.

×

Chris Houser

@chrishouser

About Chris

Chouser is a co-author of Joy of Clojure and has been a Clojure contributor since 2008. He currently uses Clojure full time at LonoCloud (ViaSat), where he uses macros more often than refs.

×

David Pollak

@dpp

About David

David Pollak founded Visi.Pro, Cloud Computing for the Rest of Us along with the Visi Language open source project. David founded the Lift Web Framework and continuously contributes to Lift.

David wrote Beginning Scala and ran the first Scala-focused conferences. In the past David wrote software for NextStep (which has morphed into iOS) including Mesa, the world's first real-time spreadsheet. You can find David on Twitter @dpp and IRL finding good Pho restaurants or walking Archer his dog along with his kids in San Francisco.

×

Doug Selph

@dougselph

About Doug

Doug Selph has more than twenty years of experience in software development across a variety of industries. For the last twelve years he has been designing and implementing solutions supporting the work of genetic research and clinical care as part of the Computational Genomics Core at Vanderbilt University Medical Center in Nashville, TN.

×

Michael Fogus

@fogus

About Fogus

Michael Fogus is software architect working in the DC area at Dynamic Animation Systems with experience in distributed simulation, machine vision, and expert system construction. He’s a contributor to the Clojure and ClojureScript programming languages and the Underscore-contrib library, co-author of “The Joy of Clojure” and author of "Functional JavaScript".

×

Jennifer Smith

@jennifersmithco

About Jennifer

Jen is a Software Developer for ThoughtWorks based in London, UK and one of the London Clojurian organisers and speakers. She originally got into software development through the coincidence of mandatory C++ classes that formed part of her Music Technology degree. Since then she has found herself working on numerous technologies, environments and languages but is happiest when that language is Clojure.

×

Jonathan Clagget

@metagorm

About Jonathan

Jonathan is a more recent Clojure convert whose fear of parens kept him in darkness for far too long. He also uses Clojure full time at LonoCloud and writes the macros Chouser refuses to.

×

Michael O'Keefe

@michaelpokeefe

About Michael

Michael O'Keefe conducts modeling and simulation of engineering systems and develops engineering tools and simulators with emphasis on energy efficient buildings, advanced vehicles, and renewable energy systems. Michael has recently started his own company called ImagineMade whose goal is to reduce the complexity of modeling and simulation of energy intensive systems. Michael also works half time with Big Ladder Software, a Denver based small business that creates and supports open source software tools for designing and modeling energy efficient buildings. In his spare time, Michael administers the ADVISOR (TM) advanced vehicle simulator open-source project originally developed while he was at the National Renewable Energy Laboratory (NREL). Prior to working for Big Ladder, Michael worked for over 10 years at NREL, a U.S. Department of Energy national laboratory located in Golden, Colorado. At NREL, Michael assisted in the modeling and simulation of advanced vehicles, developed metrics for vehicle driving profiles, and conducted research on power electronics cooling and reliability for electric vehicles. Prior to joining NREL, Michael worked briefly at Nippon Steel Corporation in Chiba, Japan and speaks Japanese fluently. Michael did his undergraduate work in Mechanical Engineering at Northern Arizona University and received his Master of Science in Mechanical Engineering from the University of Washington in Seattle, Washington.

×

Mike Anderson

@mikera

About Mike

Mike is a technology consultant and entrepreneur who has been using Clojure for as his main language for over three years. He maintains the core.matrix API for numerical computing, wrote the games "Ironclad" and "Alchemy" and has contributed several other other open source libraries for Clojure. In his spare time he develops Neural Network technology at Nuroko.

×

Nada Amin

@nadamin

About Nada

Nada is a member of the Scala team at EPFL, where she studies type systems and hacks on programming languages. She has contributed to Clojure's core.logic and Google's Closure compiler. She's loved helping others learn to program ever since tutoring SICP as an undergraduate lab assistant at MIT.

×

Philipp Meier

@ordnungswprog

About Philipp

Freelancer. 10+ year java web developer. 4+ year clojure developer. Clojure maniac. Creator of liberator. Father of 3 girls.

×

Rich Hickey

@richhickey

About Rich

Rich is the author of Clojure and Datomic, and Metadata Partners co-founder. He is now the CTO of Cognitect.

×

Russ Olsen

@russolsen

About Russ

Russ likes to think that the technology is there to solve problems for people, not the other way around.

Russ started his career doing that other kind of engineering, the sort that involves electricity, gears and getting dirty. Pretty rapidly the wonder of computer programming lured Russ away, which probably explains why most of his fingers are still intact today.

Since turning to coding, Russ has worked on everything from 3D design and image processing software to database query engines and workflow systems. Russ first discovered Ruby back in 2000 when he went looking for a simple programming language to teach to his son. The seven year old lost interest, but Russ never did and he has been building increasingly sophisticated systems in Ruby ever since.

Russ also spends a fair bit of time promoting Ruby via public speaking and he helped found RubyNation, a regional Ruby conference held each Spring in Northern Virginia. Russ has also written extensively about Ruby in the form of two highly regarded books: The first, Design Patterns in Ruby was published in 2008 and is a complete reworking of the classic Gang of Four patterns for a modern dynamic programming language. Russ's second book Eloquent Ruby is a guide to writing idiomatic Ruby. Eloquent Ruby was an instant hit in the Ruby and Rails community when it was published earlier this year.

Russ also has been secretly enamored with parentheses since a very early age and lately has been dabbling in Clojure.

×

Sam Ritchie

@sritchie

About Sam

Sam Ritchie works on data analysis and infrastructure problems in Twitter's Infrastructure Engineering group. He is co-author of a number of open-source Scala and Clojure libraries, including Bijection, Algebird, Summingbird and Cascalog 2.

×

Stuart Halloway

@stuarthalloway

About Stuart

Stuart is a founder and President of Cognitect and of Relevance. He is a Clojure committer, and a developer of the Datomic database. Stuart has spoken at a variety of industry events, including StrangeLoop, Clojure/conj, EuroClojure, ClojureWest, SpeakerConf, QCon, GOTO, OSCON, RailsConf, RubyConf, JavaOne, and NFJS.

Stuart has written a number of books and technical articles. Of these, he is most proud of Programming Clojure.

×

Thomas Kristensen

@tgkristensen

About Thomas

After graduating with a PhD in computer science from Aarhus University, Thomas turned to the dark side and has been working in different parts of the private sector ever since. Throughout his career, Thomas has worked on everything from molecular simulations, over financial analysis to cute programs playing music using logic programming. He currently works for uSwitch in London, where he happily hacks Clojure all day long. He is also the creator of the propaganda library for Clojure.

×

Timothy Baldridge

@timbaldridge

About Timothy

Timothy is a polyglot programmer with a passion for compilers and fast code. He is the author of clojure-py, Mjolnir, and several other compiler and interpreter related projects. He is an employee of Relevance Inc., and loves to discuss new programming concepts and ideas with anyone who will listen.

×

Toby Crawley

@tcrawley

About Toby

As a core member of the Immutant and TorqueBox teams at Red Hat, Toby helps drive the integration of Java and other JVM languages. Prior to joining Red Hat in 2010, Toby spent far too many years as a contractor developing applications in a plethora of languages.

×

William Byrd

@webyrd

About William

William E. Byrd is a Postdoctoral Researcher in the School of Computing at the University of Utah. He is co-author of The Reasoned Schemer, and co-designer of several declarative languages: miniKanren (logic programing), Harlan (GPU programming), and Kanor (cluster programming). His StarCraft 2 handle is 'Rojex' (character code 715).

×

Tim Ewald

About Tim

Tim designs and builds software systems. After 20 years using object oriented languages, he embraces Clojure because it provides the closes connection to the work and most directly expresses his intent. Tim works on the Datomic team at Cognitect, where he is a Vice President.

×

Enter the Matrix

core.matrix is the new API for numerical computing, designed to make Clojure a first class language for data science. core.matrix was inspired in part by discussions about the need for a common matrix API at last year's Clojure Conj. The talk will highlight why vector / matrix maths is important for data science, demonstrate how core.matrix makes numerical computing both simple and easy (with live coding examples) and discuss the various design principles and implementation techniques.


Mike Anderson

@mikera

×

The Internet of Strings: Getting Smarter about Web Integration

We build increasingly sophisticated architectures and web applications but rely on HTTP and the humble string to hold them together. We apply widely understood data formats (XML, EDN, JSON) to our requests and responses so both sides understand structure but how does each party declare its expectations of the content of the message?

In this talk I explore some of the ways we can get smarter about web integration with Clojure: how we can use generative and simulation testing, consumer-driven contracts and perhaps logic programming to better reason about uncertainties, test our assumptions and localise faults in our systems. This will include an example using [janus](https://github.com/gga/janus) to perform upstream and downstream contract verification.


Jennifer Smith

@jennifersmithco

×

Prismatic's Schema for Server and Client-Side Data Shape Declaration and Validation

We introduce Schema, a Clojure and ClojureScript library for declaring and validating the shape of data. One of the difficulties with bringing Clojure into a team is the overhead of understanding the kind of data (e.g., list of strings versus, nested map from long to string to double) that a function expects and returns. While a full-blown type system is one solution to this problem, we present a lighter weight solution: schemas.

A schema is a declarative representation of the shape of data. For instance, a map from strings to sequences of doubles would be represented by the singleton map `{string [double]}`. Schemas can be validated at runtime on a function for a particular namespace and they can be composed and programmatically manipulated since they are just data. Unlike a standard type system, schemas are always optional and are a *simple* extension of Clojure's type-hinting system and often much simpler and precise than a doc string. Schema also includes optional extensions of `defn` and `defrecord` that integrate well with schema, enabling low-effort definition and validation.

The Schema library can also be used in ClojureScript, allowing our frontend and backend to share the Schema declarations behind the API input/output contract. This results in less code-duplication between client and server as well as far less mis-communication and error between teams.


Aria Haghighi

@aria42

×

data.fressian

Fressian is an extensible binary data notation. It is inspired by, and shares many design objectives with, hessian and edn. The data.fressian library makes Fressian available in idiomatic Clojure.


Stu Halloway

@stuarthalloway

×

Harmonikit

It’s what it sounds like.


Rich Hickey

@richhickey

×

Personalized Medicine, Powered by Clojure

Personalized Medicine has the potential to revolutionize therateutic medicine. The big idea is that your unique genetic traits could help guide decision making by the practitioners caring for you. In 2010, Vanderbilt University Medical Center launched PREDICT, a first-of-its-kind clinical genotyping program to genotype patients on both a just-in-time and prospective basis. The launch of PREDICT required the development of a new application to assist the clinical laboratory staff in managing the workflow of patient specimens through the genotyping process, and to allow them to enforce release/withhold decisions for the genotype results on each specimen following their QC protocols. This application when launched was built on a widely-used MVC web framework, but today is a Clojure system. We'll look at some of the pain points encountered with the MVC framework, how the introduction of Clojure into the application stack overcame a particular hurdle, the decision to proceed with a wholesale migration of the core application to Clojure, and how these moves have paid dividends in the lifecycle of the application.


Doug Selph

@dougselph

×

Illuminated Macros

Macros are notoriously hard to write, and often hard to use. Techniques like Macro By Example and tools like syntax-parse have attempted to address these problems as well as improve error messages users get when misusing macros. But not only are these tools unavailable in Clojure, but they come with their own issues. We will explain this background and explore alternatives that make different trade-offs, with the goal of making macros more modular, easier to write and understand, and that produce better error messages.


Chris Houser

@chrishouser

Jonathan Claggett

@metagorm

×

From Greek to Clojure!

In his Lambda Jam keynote, “Everything I Have Learned I Have Learned From Someone Else,” David Nolen exposed the joys and benefits of reading academic papers and putting them to work. In this talk, we show how to translate the mathy figures in Computer Science papers into Clojure code using both core.match and core.logic. You’ll gain strategies for understanding concepts in academic papers by implementing them!


Nada Amin

@nadamin

William Byrd

@webyrd

×

Learning to Talk to Machines with Speech Acts

During a vacation cruise, a programmer's ship encounters a freak storm that leaves her shipwrecked on a desert island. Luckily the contents of one sturdy suitcase makes it to shore. With the help of a computer, Clojure, John McCarthy papers, and a Parrot AR Drone, can she survive until being rescued? Join us for this adventure where we will learn about Speech Acts, the philosophy of language, building a language with Clojure and Instaparse, and communication and friendship with machines.


Carin Meier

@carinmeier

×

core.async

The new Core.Async library in Clojure opens a realm of new possibilities for users of the language. This talk will start with an overview of Core.Async, and then show several examples ported from other CSP languages, such as Go and JSCP. The talk will end with a example program that runs on both Clojure and ClojureScript, leveraging this new library.


Timothy Baldridge

@timbaldridge

×

Cascalog 2- Streaming MapReduce in Clojure

Cascalog is a logic programming library for Clojure that allows users to run queries on enormous datasets (using Apache Hadoop). Cascalog's 2.0 release introduces two new query compilation modes - a local mode for in-memory analysis and a Trident mode for running Cascalog queries on Storm. These new features make Cascalog extremely powerful at every corner of the big data trinity; testing, batch-processing and realtime streaming.

This is a talk about the design of Cascalog's flexible, functional logic DSL. I'll discuss the protocol-based design of Cascalog's DSL and show how Clojure's dynamic dispatching made it easy to add these new compilation modes. After you learn Cascalog, you wonder how you ever did data processing any other way.


Sam Ritchie

@sritchie

×

Predicting Vehicle Usage with Clojure

"Economy of Motion" (EOM) is an open-source work-in-progress vehicle energy-use simulator. I will discuss the motivation for the simulator, how Clojure's principles of simplicity were applied to reduce complexity in the underlying mathematical model, and present several examples that showcase how the simulation can be used to research vehicle energy consumption. An overview of how EOM works and the underlying theory will be briefly discussed along with specific comparisons to the ADVISOR (TM) advanced vehicle simulator, a tool that this author helped develop and currently administers as an open-source project.


Michael O'Keefe

@michaelpokeefe

×

Building a Data Platform with Datomic

All databases have schemas, and while Datomic provides a very flexible one, the need for working with higher-level data models, versioning them, evolving them, migrating their data from one version to another and enforcing arbitrary data constraints, often arise.

We'll discuss some of these challenges and describe how Datomic can be used to build a platform that addresses those needs, how its EAVT schema can be used as the building block of much richer data models, how to take advantage of reified transactions and why data immutability is often at the center of all of it.


Antonio Andrade

×

Don't Shed a Tier for Me, Clojure

Homoiconicity is cool because the code is the data... but what happens when your data is distributed across a grid of back-end servers and you want to play with that data?

Plugh is an open source log analysis tool that is written in Clojure and runs on a cluster of Riak instances.

Plugh allows the user to logic programming to specify manipulation of the data sets. The same logic program is executed no matter the tier… it’s compiled via ClojureScript as a Map/Reduce job on Riak, applied on the server, and even applied in the browser (once again via ClojureScript).

No need for the user to think differently across tiers (SQL for the data warehouse tier, but Excel for the desktop) because the same logic and the same code is used across all tiers.


David Pollak

@dpp

×

Propagators in Clojure

Clojure opens up for combining different computational models, such as functional programming, object oriented programming and logic programming. Compared to these, propagators are a relatively new declarative computational model which makes it simple to combine different sources of information, to hold conflicting views of the world and to trace what information was needed to derive values.

This talk explains the underlying principles behind propagators using the newly released, extensible “propaganda” Clojure library with example problems solved using FP, LP and propagators. The talk will take the audience through the basic concepts of setting up a cell network, add propagators, combine information to refine values, extend propaganda with new datatypes, hold multiple contradictory worldviews and perform simple backtracking.


Thomas Kristensen

@tgkristensen

×

Developing Asynchronous Polyglot Applications with vert.x

Vert.x is an asynchronous application platform built on top of Netty that supports several JVM languages, and recently gained Clojure support. It uses a multi-reactor model to efficiently serve a high number of concurrent connections, and greatly simplifies distributed component coordination by providing built-in message passing between components within the same JVM, or on separate cluster nodes, up to and including the browser! In this talk, I’ll provide an introduction to Vert.x, and cover the trade-offs of using it for developing either pure Clojure or polyglot applications.


Toby Crawley

@tcrawley

×

Liberator - Free your Data

Liberator is a clojure library to implement http resource correctly. I will show that HTTP is more than GET and POST and how liberator enables a developer to unleash the full power of HTTP: content-negotation, conditional requests, etc. to enable the scalability promises of the RESTful architectural style.


Philipp Meier

@ordnungswprog

×

Zeder - Production Rule Systems in Clojure

In this talk I will discuss a production rule system that I’ve developed using Clojure. I’ll start by discussing production systems, their history, and how they’re used. I will then talk about the architecture of Zeder and share some details about its construction, including (but not limited to) its use of arcane macrology and Pod-like references. Finally, I’ll run through some code examples and ideas including: knowledge and rule development, expert systems as a value, and integration with Datomic.


Fogus

@fogus

×

Writing a Nanopass Compiler

Contemporary compilers are among the most complex of software systems, typically being required to handle sophisticated high-level source languages, generate efficient code for multiple hardware architectures and operating systems, and support source-level debuggers, profilers, and other program development tools. Nanopass frameworks are designed to help manage this complexity. A nanopass compiler is comprised of many single-task passes with formally defined intermediate languages. The nanopass compiler technique evolved from a methodology for teaching a compiler course at Indiana University, into a full-fledged framework, capable of implementing a replacement for the Chez Scheme compiler that runs on par with the original compiler. This talk will discuss the idea of a nanopass compiler and the implementation of a simple language using the framework in Chez Scheme, along with the challenges and opportunities of using these techniques in Clojure.


Andy Keep

@andykeep

×

To the Moon!

We all have moments that change the way we think, the way that we look at the world, the things we want to do with our lives. On July 20, 1969 a whole generation of Americans had one of those transforming experiences: Two men landed on the Moon and nothing was ever the same again. Why did we go to the Moon? How did we get there? What was it like to witness it all? And what does any of this have to do with writing software 40 years later? In this talk, Russ Olsen will take you back to a humid Sunday afternoon that changed his life. It might yet change yours.


Russ Olsen

@russolsen

×

Clojure: Programming with Hand Tools

For most of human history, furniture was built by hand using a small set of simple tools. This approach connects you in a profoundly direct way to the work, your effort to the result. This changed with the rise of machine tools, which made production more efficient but also altered what’s made and how we think about making it in in a profound way. This talk explores the effects of automation on our work, which is as relevant to software as it is to furniture, especially now that once again, with Clojure, we are building things using a small set of simple tools.


Tim Ewald