clojuTRE - 2014

clojure event for programmers - November 25th 2014

:about

clojuTRE is a free event for all interested in Clojure and its usage and applicability in real-world projects.

Past events: 2013 and 2012.

:location

:registration

NOTE: As of October 9th, The After-party is fully booked. We'll try to figure out what to do with it.

NOTE 2: As of October 30th, also The Talks are fully booked as well. Cancelled tickets will be released to those on waitlist, in order of appearance.

You can register to the event add yourself to the waitlist here.

Please note that we have separate tickets for The After-party, since the sauna-premises will unfortunately host less people than the auditorium does.

:call-for-presentations

Our Call for Presentations was closed October 30th 2014. We receivend quite a bunch of proposals, thank you all!

:program

The Talks - 13:00-18:00

The After-party - 18:00-

:talks

How to introduce Clojure to your organization (Erik Assum)

It seems like a lot of people want to introduce Clojure to their organizations. This can be hard, and the common advice is to sneak it in under the radar. In this talk I'll show one way of doing it, by implementing a bot which talks over the xmpp protocol. In addition to showing how to make it interact with Teamcity and Jira, I'll demonstrate the power of REPL-driven development.

Let's steal some Java goodness (Antti Virtanen)

If there was a book titled "Enterprise Java: The good parts" it would arguably be quite short. It's Clojure equivalent could not be written at all, but the time is ripe to begin. Instead of reinventing the wheel we could borrow some good ideas from the modern Java, especially Spring Boot. We'll show you what are the valuables to steal.

Wrapping Java in awesomeness (Tero Kadenius & Juha Heimonen)

Have you ever used a Java library? How about a Clojure library? You may have noticed a big difference. Namely the Clojure one is simpler and easier to grasp. There's the problem that there are a gazillion of useful Java libs and fairly moderate number of Clojure ones. The solution? Wrap the Java in awesomeness.

In this talk Juha and Tero will describe how they built a library (Condensator) for distributed message passing for their own needs at their company Flowa on top of Spring Reactor and the Clojurewerkz’s Meltdown library.

Load testing using core.async (Markus Hjort)

Gatling is a great performance testing tool. However, at the moment Clojure is my number one favorite language and Gatling forces me to write the tests using Scala. I wanted something similar to exist in Clojure world too. So I had to write a-yet-another-performance-testing-tool. clj-gatling was born (https://github.com/mhjort/clj-gatling).

I implemented clj-gatling using a library which was new to me: core.async. It turned out to be a great fit to this problem domain. In this talk I will show how you can use core.async to generate a number of parallel requests and gather relevant performance metrics. In short I will show how to write your own load testing tool with few lines of Clojure code.

Hacking FirefoxOS with Clojurescript (Timo Sulg)

FirefoxOS pursues the goal of building a complete, standalone operating system for the open web and now it has found its way into mobile devices, smart TVs and Raspberry Pies.

This session will showcase the use of Clojurescript for FirefoxOS application. We will walk through the code examples and discuss some of the possibilities hidden in the FxOS WebAPI. At the end of the presentation, you will have a basic understanding of FirefoxOS and how to get started with your own Skynet.cljs with $35.

A Clojurian's Quest for Qt (Pauli Jaakkola)

I set out to write apps for desktop and mobile, in Clojure (of course). So I needed a cross-platform GUI library and chose Qt (of course). The combination of Clojure and Qt seemed like a source of great leverage.

But alas, it also turned out to be source of incidental complexity. Join me for a journey through the different possibilities and impossibilities of using Qt together with Clojure or ClojureScript.

ClojureScript live coding with ease using Lively (Immo Heikkinen)

When developing web applications using ClojureScript, verifying any non-trivial code changes requires refreshing the browser to load the compiled JavaScript code, or alternatively setting up a browser REPL and cherry picking changes to send to the browser. As your application grows, this becomes quickly slow and unpractical.

In this talk you will see another option: Lively (https://github.com/immoh/lively), a ClojureScript library that monitors compiled JavaScript files for changes and reloads them when they change, creating a development environment where you can edit ClojureScript code and see the changes immediately without needing to refresh the browser.

Build tooling with Boot (Juho Teperi)

Leiningen is great for pure Clojure projects. So why would one be interested in other Clojure build tools?

I've been working with full-stack Clojure project for some months now. Figwheel provides nice workflow with live reloading for ClojureScript projects but from the start of the project I felt Lein leaves some things to be desired.

Boot is a new build tool for Clojure. And I'll show how it improves on some areas in comparision to Leiningen.

Hay - an embedded language (Meikel Brandmeyer)

An embedded scripting language can often enhance the usability of an application. In particular in terms of automation. However just exposing the implementation language itself may or may not be feasible for a variety of reasons. A separate scripting language has to interface quite closely with the host language. We will explore such design constraints and implement a little language interfacing easily with Clojure.

Haskell for Clojurists (Bodil Stokke)

Now that you've found your perfect language, why would you even care about other languages? Actually, a very large part of what's made Clojure so great is the community's eagerness to go out and seek new ideas and bring them back. You'll be surprised how many Clojure core libraries were actually Not Invented Here: core.async, core.logic, core.typed and core.match to name some of the more obvious ones. And for Clojure to retain its competitive edge, it's imperative that we keep this healthy interest in the whole field of computer science going — as opposed to going tribal over our own splendidness while progress only comes when somebody manages to sneak it in the back door, like we're some kind of Node developers.

Which is why I want to show you another of my favourite languages: Haskell. It's a close cousin to Clojure, sharing many crucial ideas like immutable data structures and a strong focus on pure functions. They diverge in their approaches to metaprogramming: Clojure, as we know, employs macros for ultimate power, whereas Haskell's approach is through a remarkably powerful type system. Why would you prefer one over the other? Why indeed; that's what I'd like to examine, and whether or not you decide to start using Haskell like a category theorist after this talk, I can guarantee you a brush with Haskell will make you a better Clojure programmer.

:speakers

Bodil Stokke (@bodil)

Bodil is a a bishop of the Greater London diocese of the Church of Emacs, and a compulsive conference speaker in the fields of functional programming and internets technologies, and is a co-organiser of multiple developer conferences in Scandinavia and the UK, mostly because she’s still learning how to stop. In her spare time, she works as a developer for Future Ad Labs, a London based startup that wants to make advertising a productive member of society. Her favourite pony is Pinkie Pie.

Meikel Brandmeyer (@kotarak)

Meikel Brandmeyer is a clojurian of the first hour. He tours across Europe organising Clojure trainings and teaches the Gradle build system how to handle Clojure projects.

Timo Sulg (@timgluz)

Timo is the co-founder of VersionEye, a freelance programmer and sincerely believes that the great code is surrounded by par-hugs.

Immo Heikkinen (@immoh)

Immo is a software developer at Ekahau, programming Clojure and ClojureScript on a daily basis. When he doesn’t get his daily dose of parens during the day, he contributes to OSS projects at night.

Erik Assum (@slipset)

Erik is a programmer at Iterate, a Norwegian consultancy company. He works mostly in Java and Javascript, enjoys hunting bugs, and wishes more people would see the greatness of Clojure.

Antti Virtanen (@anakondantti)

While not writing Clojure code, Antti navigates the murky waters of project management. Excited about Clojure and would love to see it used more in the professional software development business.

Tero Kadenius (@pisketti)

Tero is one of the co-founders of Flowa. He is a contemporary code artist who finds inexplicable joy in building stuff in Clojure.

Juha Heimonen (@evilbubu)

Juha is a programmer getting comfortable with Clojure.

Markus Hjort (@mhjort)

Markus is a polyglot programmer writing Javascript, Scala and Clojure for living. He builds web applications with high performance requirements. His tool of choice for performance testing used to be Gatling. However, he felt there was a need for even better tool with simple api and written in Clojure.

Pauli Jaakkola (+PauliJaakkola)

Pauli is a Clojure enthusiast by night and a fluid dynamics student at Tampere University of Technology by day.

Juho Teperi (@JuhoTeperi)

Juho is a Clojure programmer at Metosin. He has some JavaScript experience and thinks there might be some things (Gulp) in JS world from which we can take example.

Tims Gardner (@timsgardner)

Tims Gardner is an illustrator and Clojure programmer. His interests include symbolic computation, formal visualization, and psychedelic comics. He is a member of Kitchen Table Coders and aspires to cavitate the moon someday.

:sponsors

:feedback

Did you attend? Please give us feedback.

Thanks.