Then come and be part of the forth annual Clojure eXchange taking place on December 4th-5th. Immerse yourself in two days of talks, discussions and networking with Europe's Clojure community to learn and share skills, exchange ideas and meet like minded people.
Keynoting this year is Kyle Kingsbury (@aphyr) who will be speaking on concurrent folds. Other topics include Clojure in Cloud, Clojure in Government, Lenses, and what Art and Dance have to do with it.
Excited? Share it!
Day 1: Clojure eXchange
Pick your sessions!
Track | 1 | |||
08:30
Invalid Time
Invalid Time
|
Registration & Welcome |
|||
09:00
Invalid Time
Invalid Time
|
Day 1, 4 Dec starts 09:00 (1)
Reactive GUI Implemented in Clojure
|
|||
09:15
Invalid Time
Invalid Time
|
We use Clojure, Clojurescript and Reagent as a large part of our stack (as well as everything else you need to do well at the game of buzzword bingo… Docker, AWS, etc. etc.). We believe Clojure is the perfect language for bioinformatics thanks to its great concurrency story and powerful sequence abstractions, and so I’d like to present a short talk on how we use the language, what our future plans are, and maybe even start a discussion on the benefits Clojure could bring to the field of bioinformatics and genomics projects as a whole.
clojure
clojurescript
About the speaker...Russell DunphyWhen not programming Russell likes to do the odd cat or dog painting, or make songs about the small dogs you can see in the park near his office. |
|||
09:30
Invalid Time
Invalid Time
|
The database had file handles, pointers to native code and various network sockets and loading all of the data into memory wasn't an option. What was tried and discarded and what patterns did I end up with? This will be a very quick whirlwind tour with a potentially controversial set of conclusions. |
|||
10:00
Invalid Time
Invalid Time
|
We're just about finding enough time to extract common patterns and tools into isolated libraries, enough to create a talk about the practice of building time-based performance systems for screen-based art.
clojure
About the speaker...Nick RothwellHe is currently working on choreographic visualisation tools for Wayne McGregor|Random Dance at Sadler's Wells, interactive sound and sensing systems for Eddie Ladd's ongoing tour of Ras goffa Bobby Sands (The Bobby Sands Memorial Race), music composition for Shobana Jeyasingh Dance Company, and large-scale outdoor algorithmic video animation for Simeon Nelson in Poland, Estonia and the UK. Nick has just returned from an algorithmic video project at the UNESCO heritage site at Boudhanath in Kathmandu, possibly marking the first use of Clojure in the whole of Nepal. |
|||
11:00
Invalid Time
Invalid Time
|
In this talk I will discuss my experiences diagnosing and fixing performance problems in real-world clojure applications, and some practical approaches to making this less painful. |
|||
12:00
Invalid Time
Invalid Time
|
Lunch |
|||
13:00
Invalid Time
Invalid Time
|
Dragonmark Circulate provides a mechanism for distributing core.async channels across address spaces while providing the same semantics to all the address spaces. David Pollak (Dragonmark and Lift founder) will discuss using Dragonmark to create a web-based chat app as well as recruiting members of the audience to participate in the open source project (aka, please help whitewash my fence). Oh... and I'll hug Bruce and anyone else who wants a hug... but I'll do that anyway.
clojure
distributed
web
core.async
About the speaker...David PollakDavid has written a popular framework in Scala (Lift) and a book about Scala (Beginning Scala). He's been doing Scala since 2006, and more recently has picked up Clojure. David has also started work on his Plugh framework and founded Visi.Pro, Cloud Computing for the Rest of Us along with the Visi Language open source project. |
|||
14:00
Invalid Time
Invalid Time
|
We'll give you a quick overview of our architecture and introduce you to our newly open-sourced deployment tooling; explaining the problems we faced and how we solved them. Expect code and a live deployment to our production environment. |
|||
15:00
Invalid Time
Invalid Time
|
|
|||
16:00
Invalid Time
Invalid Time
|
A data structure of this kind suitable for implementing maps was described by Prokopec, Bronson, Bagwell and Odersky. This talk aims to introduce it to the Clojure community, to present a Clojure implementation and to describe API choices that make using it feel natural in Clojure.
clojure
data-structures
concurrent-programming
About the speaker...Michal MarczykAuthor and maintainer of core.rrb-vector and data.avl. |
|||
17:00
Invalid Time
Invalid Time
|
|
|||
18:00
Invalid Time
Invalid Time
|
After Party - Sponsored by Mail Online |
Day 2: Clojure eXchange
Pick your sessions!
Track | 1 | |||
08:30
Invalid Time
Invalid Time
|
Registration & Welcome |
|||
09:00
Invalid Time
Invalid Time
|
This involves using production-parity local/remote 'devboxes' independent of the host OS, and growing this setup into a production environment. Pros and cons of the approach will be discussed, along a experience report from 'the wild' of using Clojure in this manner. |
|||
09:15
Invalid Time
Invalid Time
|
Not only that but lots of Clojure code has already been ported (include the Clojure language itself, twice) or has inspired pure Javascript equivalents. In the talk I'll introduce ImmutableJS, Mori, Wisp, Omniscient and maybe even Clojurescript.
clojure
javascript
clojurescript
About the speaker...Robert ReesPrevious to working at POP Robert has had senior roles at The Guardian, GDS, ThoughtWorks and ideas startup Wazoku. His first program was written on the C64. |
|||
09:30
Invalid Time
Invalid Time
|
I’ll also show how we use off the shelf components to make it easy to create a componentised website or add a database and show a few patterns I have found useful for running unit tests real fast and dealing with large volumes of data in development.
clojure
About the speaker...Adrian MowatHe co-hosts the Glasgow Clojurians group with Simon Brooke, runs public "Clojure Launchpad” training courses aimed at beginners and improvers, and he recently helped as a teaching assistant at Ali King’s Clojure Bridge in Edinburgh. |
|||
10:00
Invalid Time
Invalid Time
|
I'll be talking a bit about Flow as a library, its usage, and give a few examples of what's possible - but the majority of the talk will be discussing the design and implementation of the DSL, as well as what I've learned about developing in ClojureScript, using macros, manipulating Clojure forms, and writing a compiler. I'll probably also talk about the progression of ideas that led to Flow's current incarnation, time permitting.
clojure
clojurescript
libraries
About the speaker...James HendersonHe has been developing in Clojure commercially for 18 months and, having been a Java developer previously, is thoroughly enjoying the breath of fresh air. James is the author and maintainer of a variety of open source Clojure libraries, including Nomad (a configuration management library) and Chime (a bare-bones scheduler). Unfortunately, he doesn't (yet) fight crime by night. |
|||
11:00
Invalid Time
Invalid Time
|
The session will walk through the performance enhancements i’ve added to the Cyanite project over the last few weeks. The initial conversation can be found on github: The final pull request and sorting out can be seen here: That main focus of the talk will be putting Clojure’s core.async library to work. The following points will form the basis of the talk:
The last point will lead into the work done to the database clients:
The talk will aim to provide some concrete tips for this kind of work and to show, rather than tell, what the impact of using these non-blocking techniques can be.
clojure
About the speaker...Tom CouplandCurrently he can be found basking in the joy that is Clojure during the day, while keeping an eye out for other suitors in the evening. When not trying to make his bit of the world of software a better place, he can be found out in the real one, running around, preferably in the mud, wind and rain. |
|||
12:00
Invalid Time
Invalid Time
|
Lunch |
|||
13:00
Invalid Time
Invalid Time
|
|
|||
14:00
Invalid Time
Invalid Time
|
Clojure offers fast feedback and the ease of spinning up simple web services. It let us adapt quickly and explore complex flows of data. Our talk will be about how we got on, things we learnt, and what we'd do differently next time.
clojure
About the speakers...Rachel NewsteadShe spends most days muddling through layers of abstraction in Java and is super excited about how the same thing can be expressed simply and elegantly in a few lines of Clojure! |
|||
15:00
Invalid Time
Invalid Time
|
Although there’s lots of source material for learning Clojure there are relatively few publicly available examples of Clojure systems in production. In this talk we will present examples of the practices we use at uSwitch when developing Clojure services, and describe the architecture of some of our sub-systems containing these vital Clojure services. We will centre our discussions around Clojure services we have open-sourced and which you can examine and use. You will go away from the talk inspired to try out new things. Let’s share some good war stories and have some interesting discussions - maybe in future talks, maybe in the pub.
open-source
clojure
About the speaker...Thomas KristensenHe holds a PhD from Aarhus University where he worked in the field of bioinformatics. He now spends his time trying to help the British public save money on their energy bills via the medium of Emacs and whiteboard sketches. |
|||
16:00
Invalid Time
Invalid Time
|
These concepts are highly relevant to Clojure development, because they provide a way to resolve the tension between simple, coarse-grained state management, and simple, fine-grained functions that operate on parts of that state. In this talk I will explore what form these concepts might take in an untyped (by default) language like Clojure. |
|||
17:00
Invalid Time
Invalid Time
|
KEYNOTE
I've been working on concurrent folds, where we sacrifice some order in exchange for parallelism. Tesser generalizes reducers to a two-dimensional fold: concurrent reductions over independent chunks of a sequence, and a second reduction over those values. Higher-order fold combinators allow us to build up faceted data structures which compute many properties of a dataset in a single pass. The same fold can be run efficiently on multicore systems or transparently distributed--e.g. over Hadoop.
clojure
concurrent
distributed
hadoop
About the speaker...Kyle KingsburyFollow Kyle Kingsbury on Twitter via @aphyr. |
-
Pragmatic Clojure Performance Testing
Featuring Korny Sietsma
Knuth said it first: ""97% of the time, premature optimisation is the root of all evil"". And it's become a mantra: ""You aren't going to need it - Don't worry about speed - wait until we performance test and then tweak the slow parts"". But...
clojure testing -
DataScript for web development
Featuring Nikita Prokopov
DataScript is an open-source implementation of Datalog and Datomic in-memory storage, in ClojureScript, for browser. I’m going to talk about motivation behind DataScript, how it was created, how it can be used, what kind of problems it solves and how simple and sane web app development is when...
datascript datalog clojurescript web-development -
Ephemeral-first data structures
Featuring Michal Marczyk
Clojure programmers are used to working with highly sophisticated persistent data structures, using managed references when mutable state is unavoidable. In some applications, however, a compelling alternative presents itself in the form of concurrent data structures with lock-free...
clojure data-structures concurrent-programming -
Resource management in clojure
Featuring Rob Ashton
I wrote a database in Clojure, it's not a very good database but I had a lot of fun doing it. One of the common questions I found myself asking the Clojure community was ""how on earth do you deal with resources in a non-pure and lazy functional programming language?""
clojure databases functional-programming -
Developing Clojure in the cloud
Featuring Martin Trojer
In this talk I will describe a pattern of working as a team ""in the cloud"" using vagrant, puppet and tmux.
clojure cloud -
2
Clojure in the service of Her Majesty's Government
Featuring Rachel Newstead and Philip Potter
The Scenario: You have thirteen weeks to build a prototype login system for businesses to use government services. The code will be thrown away afterward, but it must be able to evolve rapidly in response to feedback about what a user journey should look like. Half your team have never used...
clojure -
Journey through the looking glass
Featuring Chris Ford
Lenses are a beautiful functional abstraction that subsume the getters and setters of object languages like Ruby and Java. Traversals are a related abstraction that subsume iteration.
clojure lenses -
My Componentised Clojure Crusade
Featuring Adrian Mowat
One of the great things about coming to conferences is seeing ideas you’ve heard about for real. Well, Stuart Sierra’s components and reloaded workflow have been a popular topic for a while now and I’ll use this lightning talk to bring them to life by showing you how we use them to separate...
clojure -
Trojan Horsing Clojure with Javascript
Featuring Robert Rees
Love using Clojure but can't get your static typing colleagues to get with the LISP programme. Well Javascript (the Scheme in the browser) is your friend. It's already dynamic and uses maps for everything, it's like a second home!
clojure javascript clojurescript -
Automation, Animation, Art and Dance
Featuring Nick Rothwell
We're deploying Clojure on stage, in galleries and elsewhere, providing rule-based mediation in dance performance, generating geometric visuals for interactive installation works, and generally throwing brackets into artistic practice in the UK and abroad.
clojure -
Dragonmark: distributed core.async
Featuring David Pollak
Communicating Sequential Processes (CSP) provides excellent patterns for building concurrent systems. Clojure's core.async provides a Clojure implementation of CSP in a single address space.
However, very few programs run in a single address space. Web applications run in a combination of the...
clojure distributed web core.async -
Super Charging Cyanite
Featuring Tom Coupland
Join me for a rapid journey through making metrics move rapidly. The medium in question for these metrics being Cyanite, an open source Clojure project that replaces Graphites default storage engine, Carbon, with a combination of Cassandra and ElasticSearch. We’ll look at the overall data flow,...
clojure -
BirdWatch / Building a System in Clojure
Featuring Matthias Nehlsen
In this talk I will discuss the lessons learned while building a complex system for live Tweet Stream Analysis using multiple Clojure applications, ElasticSearch, Nginx and Redis (all inside Docker containers) on the server side plus a client connected over WebSockets using Om for the UI.
clojure elasticsearch nginx redis websockets -
Flow - learnings from writing a ClojureScript DSL
Featuring James Henderson
Flow is a ClojureScript library that I've been writing in my spare time over the last four months, allowing developers to write webapps in a declarative style.
The idea for Flow came out of my ClojureX talk last year, when I proposed a couple of CLJS UI design patterns that we'd evolved...
clojure clojurescript libraries -
Herding cattle with Clojure at MixRadio
Featuring Neil Prosser
At MixRadio we use Clojure to power our micro-service architecture and loved it so much we used it to build our AWS deployment tooling.
clojure -
Pathogens & Parentheses: How we use Clojure in the molecular surveillance of infectious disease
Featuring Russell Dunphy
I work for an organisation called BUGS Bioscience: a not-for-profit collaborative enterprise combining the latest developments in molecular biology and genomics with advanced mathematics and software. We provide integrated molecular surveillance services to help tackle global health challenges...
clojure clojurescript -
More Open-Source systems, please
Featuring Thomas Kristensen
This talk will describe how we build Clojure systems at uSwitch: development and deployment, metrics and monitoring. We’ve benefited greatly from the open-source work provided by the community and the way we build Clojure systems has evolved greatly since our first deployment in 2010.
open-source clojure -
-
Tesser: Another Level of Indirection
Featuring Kyle Kingsbury
Clojure's sequence library and the threading macro make lazy sequence operations like map, filter, and reduce composable, and their immutable semantics allow efficient re-use of intermediate results. Core.reducers combine multiple map, filter, takes, et al into a single fold, taking advantage...
clojure concurrent distributed hadoop
-
Clojure eXchange 2018
Two days in London
If you're looking for the best place to learn about Clojure, Functional Programming and network with like-minded people, then Clojure eXchange 2018 is the conference you simply can't miss. Meet with the world's leading experts on Clojure and learn the latest concepts and applications...
fp functional-programming clojurex clojure -
Clojure eXchange 2017
Two days in London
If you're looking for the best place to learn about Clojure, Functional Programming and network with like-minded people, then the Clojure eXchange 2017 is the conference you simply can't miss! Meet with the world's leading experts, learn how to use Clojure in your team and discuss war...
clojure clojurex functional-programming fp -
ClojureBridge London Nov 2017 at Skills Matter
1.5 days in London
ClojureBridge is a free, beginner-friendly workshop teaching the Clojure programming language, primarily aimed at those who identify as women, transgender & non-binary.
clojure diversity community -
HackTheTower December 2016
One day in London
hackthetower.co.uk is a hack day for any and all developers to come and collaborate on projects or discover new technologies together and enhance their skills. Bring your laptop and your desire to try things out & have fun!
clojure clojurex hack hackathon -
Clojure eXchange 2016
Two days in London
If you're looking for the best place to learn about Clojure, Functional Programming and network with like-minded people, then the Clojure eXchange 2016 is the conference you simply can't miss! Meet with the world's leading experts, learn how to use Clojure in your team and discuss war...
clojure types java functional-programming jvm fp clojurex elm -
HackTheTower December 2016
One day in London
hackthetower.co.uk is a hack day for any and all developers to come and collaborate on projects or discover new technologies together and enhance their skills. Bring your laptop and your desire to try things out & have fun!
clojure clojurex hack hackathon -
Clojure eXchange 2015
Two days in London
Do you want to explore the latest innovations in Clojure and meet with your peers attempting to solve complex software problems using this Functional language?
clojure types java functional-programming jvm -
Clojure eXchange 2013
One day in London
Are you a developer looking to expand your functional skill set? Would you like to meet some of the biggest names in the industry?
clojure functional-programming jvm java lisp clojurescript cascalog mqtt concurrency clojurex -
Clojure eXchange 2012
One day in London
The Second Annual Clojure eXchange, led by Bruce Durling took place on December 6th 2012 at The Crypt. Follow @skillsmatter and #clojurex for programme updates
clojure -
Clojure eXchange 2011
One day in London
With the great interest in Clojure and the fabulous success of recent London Clojure meetups, we decided the time is right for a proper, intensive, interactive day here at Skills Matter for everyone interested in this great technology to learn and share skills.
clojure