clojuTRE - 2015

clojure event for programmers - September 11th 2015

:about

clojuTRE is a free Clojure conference organized by Metosin. The event has single track, late start, short talks (20 minutes) and an awesome after party for networking, discussions and draft beer. We welcome both newbies and seasoned Clojurists.

There is also a Advanced Clojure and ClojureScript Training on Thursday 10.9.

Past events: 2014, 2013 and 2012.

:feedback

Please leave feedback at http://goo.gl/forms/LYCujOOWhn.

:videos

Video playlist

:location

In Tampere, Finland.

Juhlatila Konsu
Hämeenpuisto 28
33200 Tampere
Finland

:registration

You can register to the event here.

:call-for-speakers

The Call for Speakers was closed August 6th 2015.

:program

Pre-Conference Lunch - 11:00-12:30

There is a chance to enjoy a lunch with the fellow Clojurians before we start at Restaurant Aisti just around the corner (Hallituskatu 19).

The price is 10€. Aisti is open just for us, so if you are planning to come and didn't already fill the questionnaire, please do it now so we can give them a heads up.

The Talks - 13:00-18:20

The venue is open from 12:15. Be preferably earlier than later so you have time to get your badge.

The After-party - 18:20-

Party is located at restaurant Teerenpeli, at Hämeenkatu 25, just some 350 meters (about 1148 feet, 383 yards, 1.73 furlongs, 1.16747433 × 10-6 light-seconds) from conference. We offer food and few local beers and ciders.

During the after party Sam Aaron will live code an improvised Algorave set with Sonic Pi for your inner raver to dance to. Expect serious beats, synths, bass and code.

:talks

Simplicity in Practice (Luke VanderHart)

Clojure is built upon a foundation of simplicity, and in the Clojure community simplicity is the most prized attribute a library or application can have. Unfortunately, there isn't much consensus on what simplicity looks like in real code and in applications that are, by nature, complex. This talk further unpacks the definition and practice of simplicity, with plenty of real-world examples and advice to move toward simplicity in meaningful, practical ways. It also revisits the relationship between ease and simplicity and advocates for ease as a complimentary attribute.

Slides Video

Wherefore art thou LFE? (Robert Virding)

Why yet another lisp? Why do we need/want a new lisp for the Erlang VM? What is it that makes the existing ones, even Clojure, a bad fit? This talk will give a brief description of the main properties of the Erlang VM and how it affects implementing languages on it. LFE (Lisp Flavoured Erlang) has been designed to run efficiently on the Erlang VM and at the same time be a "real lisp" providing Lisp's good bits. We will describe the language and how it uses the properties of the system as well as some of the tooling around it.

Video

Introduction to yada (Malcolm Sparks)

In Clojure, we have a language that is almost perfectly suited to constructing websites and APIs.

In this talk, I'll briefly summarize some features of the HTTP protocol which are not well known and rarely implemented, especially by services written in Clojure.

I'll then introduce yada, a new Clojure library I've written that makes it easier to support more of HTTP in your web services, and explain the benefits of doing so.

Slides Video

Kekkonen - commands and queries for the web (Tommi Reiman)

Thanks to REST and Swagger, we can build beautiful apis to feed both our browser frontends and external applications. But, wrapping your Clojure code into resources mostly for your ClojureScript frontend doesn't feel right? Just use RPC? Meet in the middle?

Kekkonen is a small library for managing your (web) apis as commands and queries. No magic, data-driven, un-restful and non-rpc. It's goals are to be small, explicit, extendable and to help enforce your business rules both on the server side and on the ClojureScript frontend. Besides Swagger, it provides run-time context-aware apidocs for Clojure(Script).

Slides Video

Hoplon and Javelin, WebDev Alternate Reality (Micha Niskin)

The world of functional web application development has been transformed by the success of Facebook's ReactJS. The principles of dataflow programming and the benefits of immutable data are now acknowledged by the mainstream.

Hoplon and Javelin present a strange, bizarro world — an alternate reality in which applications can be developed in a functional dataflow style... without React! We'll talk about the tradeoffs and where Hoplon fits into the cosmic landscape, and hopefully see how Lisp can truly Do It with elegance and panache.

Video

Polymorphic Codebases (Sebastian Bensusan)

We know how to handle Polymorphism in the small with protocols and multimethods but how do we handle Polymorphism in the large?

While developing a Form Builder, we collected tools and practices to structure our codebase so that adding each new Field Type would add no extra complexity. The journey highlights the strengths (and weaknesses!) that Clojure(Script) has to deal with architecture in several concerns: rendering, validating, storing, etc.

Slides Video

The Other Data Structures (Jonas Enlund)

We build programs in Clojure primarily using immutable data structures such as vectors and (optionally sorted) sets and maps. Most of the time these primitives provide exactly the operations we need. This talk is a survey of alternative data structures available to Clojure programmers for cases when the built-ins are not the best tool for the job. The audience will learn about RRB Vectors and AVL Trees, how they relate to their built-in counterparts and about the additional capabilities they offer. The talk will focus on examples and use cases instead of lower level implementation details.

Slides Video

Unknown pearls from the Clojure standard library (Renzo Borgatti)

Over the years I had fun saving pointers to interesting Clojure bits in my Clojure Weekly series. Interestingly, I keep stumbling upon little or less known functions from the Clojure standard library that make development easier or more efficient. In this talk we'll see a few and hopefully I’m going to surprise you.

Slides Video

(end-of-buffer) (Joseph Wilk)

Repl Electric bind light, sound and poetry to the fingertips.

In (end-of-buffer) a single programmer will live code music with Overtone, visuals with OpenGL Shaders and all bound together with Clojure and Emacs. Taking a common tool used widely for programming and emphasising its power and feedback in coding live. No other hardware or midi devices are used, just a text interface to a computer. Demonstrating the power of programming and the control and expression we wield in our fingertips. Embracing an open model all the performance source is open-source and free for all to see and play: repl-electric.

Video

Developing a multi-tenant SaaS using Clojure (Ari-Pekka Viitanen)

There are a few unique challenges in designing and developing a SaaS application running as a single instance and used by multiple businesses, each with their own private data and their own set of users. An example of such challenges, often the most important one, is the persistence design: how to store the data so that each tenant's data stays completely isolated and at the same time easily queryable.

In this talk I'll tell about how we set out to build a real-world multi-tenant SaaS in Clojure: what kind of of architectural choices we made, how we structured the application and how Clojure, PostgreSQL and a couple of commonly used libraries helped us solve the challenge with multi-tenant data in a simple and concise way.

Slides Video

Polyglot microservices: Comparison between Javascript, Scala and Clojure (Markus Hjort)

Rarely you have an opportunity to compare building similar like thingies using multiple different languages. I have been two years working in a team building a microservices architecture for Yle. We have now over dozen of microservices running live implemented in Javascript, Scala and Clojure.

In this presentation I will share how well have these tools worked for us: what have been their weak and strong points. Since this is a Clojure conference I can already reveal one of our findings: our wish is to slowly move more and more things into Clojure world.

Slides Video

Desktop Apps with ClojureScript (Martin Klepsch)

In this talk you will learn about the process, challenges and tools used to make a desktop application with ClojureScript based on Electron. Electron is an excellent target for ClojureScript and with a bit of tooling developing for it can be the pure fun we're used to from targeting plain browsers.

Electron is a toolkit to create cross platform applications using web technologies. It allows you to build an application in the same way you would do it on the web while providing integrations with OS specific things like notifications and menus.

Slides Video

:speakers

Robert Virding (@rvirding, )

Hello, Robert!

Robert is one of the co-inventors of Erlang and took part in the original system design. He is also a long-time lisp programmer and enthusiast. He is now Principal Language Expert at Erlang Solutions Ltd. and is regularly invited to teach and present throughout the world.

Luke VanderHart (@levanderhart, )

Luke is a Clojure Consultant currently working with Cognitect. He is the co-author of Practical Clojure (Apress 2010), ClojureScript: Up and Running (O'Reilly 2012) and the Clojure Cookbook (O'Reilly, 2014). He is also the author of several Clojure(Script) libraries including Quiescent, Domina and Prolin.

Malcolm Sparks (@malcolmsparks, )

Malcolm has been working in middleware for 20 years. He is a co-founder, with Jon Pither, of JUXT, an EU-based software development, training and consulting firm that uses Clojure exclusively. He is also the primary author of bidi, a URI routing library written in Clojure.

Tommi Reiman (@ikitommi, )

Started programming with the Spectrum 48k in the early 80's, did some server-side javascript in the 90's before entering the green fields of Java(tm). Architected and implemented telco systems with cool new things things like JSPs, EJBs and SOAs. Re-found Lisps in the form of Clojure and co-founded Metosin. Currently happily working with Clojure & Clojurescript. Some open source stuff too.

Micha Niskin (@michaniskin, )

I'm a Clojure developer at Adzerk, where help great sites like Stack Overflow and Reddit show you ads. I'm especially interested in studying the way we program web applications and distributed systems -- where the seemingly simple becomes deceptively subtle. Clojure is awesome and I love learning and talking about it!

Sebastian Bensusan ()

I'm a Clojure(Script) developer at Komunike, a startup improving enterprise software. I'm the author of a few ClojureScript libraries, like lein-doo, with focus on testing. Originally from Buenos Aires, I'm now living in Stockholm.

Jonas Enlund (@jonasenlund, )

Jonas Enlund is a math teacher turned software developer working at Akvo.org where he builds open source tools for the international development sector. His personal open source work includes static analysis tools such as Eastwood and Kibit as well as other various projects.

Renzo Borgatti (@reborg, )

Started professionally around 2000, I've got my Commodore C16 sometimes in 1986. I've done work/research for different industries, corporate and startups, Europe and USA. I moved between different languages and finally landed on Clojure. I currently work at the Mailonline in London.

Joseph Wilk (@josephwilk)

Joseph Wilk performs live coding as Repl Electric, exploring programming as a performance and its interaction with other art forms, while also working as one of the Sonic Pi Core Team helping bring music through Ruby to everyone.

Ari-Pekka Viitanen (@apviitanen)

Ari-Pekka is a passionate programmer/architect working at Vincit. He does most of his day-to-day programming in Java, yet finds himself inexplicably drawn to things like parenthesis, immutable values and pure functions. Recently shipped his first Clojure project and wishes for many more to follow.

Markus Hjort (@mhjort, )

Markus is a polyglot programmer writing Javascript, Scala and Clojure for living. He has been around building scalable and robust software for over fifteen years. He loves solving complex problems but hates software with accidental complexity. Besides hard-code coding you can often find him by the white board chatting with his team mates and drawing circles, lines and boxes to find ways to simplify the design.

Martin Klepsch (@martinklepsch, )

Martin is an independent software developer with a focus on frontend based in Berlin. Quit his last proper job for the chance to work with ClojureScript. Since then he has created CLJSJS and various other ClojureScript related things. Also he's helping to organize the Berlin Clojure Community & ClojureBridge Workshop.

Sam Aaron (@samaaron, )

Sam Aaron is a live coder who considers programming as performance and strongly believes in the importance of emphasising, exploring, and celebrating creativity within all aspects of programming.

Sam is also the creator of the music live coding environment Sonic Pi, a new musical instrument that uses code as its interface. Drawing directly from years of experience hacking on Overtone, Sonic Pi has been designed with the aim to find a harmonious balance between three core principles: simplicity, joy and power. Simple enough for the 10 year old within you, joyful enough for you to lose yourself through play and powerful enough for your own expressions. By day, Sam is a Postdoc Researcher at the University of Cambridge Computer Laboratory and by night he codes music for people to dance to.

:code-of-conduct

People are different. Let's respect that.

We, the organizers, want everybody to be able to enjoy ClojuTRE. We hope that everybody, regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, ethnicity, or religion, can feel welcome and respected at ClojuTRE.

We need your help to to achieve this. We are counting on you!

Use your common sense. Don't be a jerk, ok?

:sponsors