clojuTRE - 2016

clojure event for programmers - September 10th 2016

:about

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

:location

:coming-from-abroad

You can fly either directly to Tampere-Pirkkala airport (TMP) or Helsinki-Vantaa (HEL). Tampere airport is quite small so you might have better luck finding flights to Helsinki.

From Tampere airport there is a public transport bus connection to Tampere center which takes about 40 minutes and costs 3€. Another option is to take a taxi which takes about 25 minutes and costs about 19€.

From Helsinki airport it is possible to take a train to Tampere. This trip has one transfer and should take about two hours and cost 21€. Tampere railway station is just next to the venue and several hotels.

:staying-at-tampere

Nearly all hotels at Tampere center are within walking distance to the venue.

:talks

With five years behind us, the history of ClojureScript is already becoming murky. This talk attempts to document the many interesting landmarks along the way before we forget them. By pausing to reflect on how much ground we have collectively covered, we also hope to form a clearer picture of the next five years ahead of us. Spoiler alert: the best is yet to come!

Business Insider estimates that by 2020 there will be 24 billion IoT devices connected to the Internet. McKinsey estimates that IoT has an economic impact between $3.9 to $11.1 trillion by the year 2025. I estimate that by the 2017 all IoT applications are written in Clojure. Or, at least they should be.

We have been implementing a simple proof of concept for an IoT solution for Flowrox. In this talk I explain the choices we have made and demonstrate why I think Clojure is ideal technology for IoT applications. I'll try to provide some ideas for both seasoned Clojurians and for newbies.

Mental illness is a massive problem in the world today. People prefer psychological treatments over medication but access to psychotherapy is severly limited. One solution to this problem is to develop self-help treatments that can be delivered through the Internet. Research has shown that these treatments are effective and if therapist support by for example email is added, the effect could be on par with regular psychotherapy. However, therapist-supported computerized psychological treatments are very hard to access outside of research settings.

We are a team of psychologists and psychotherapy researchers that aim to build a web application that takes advantage of modern web technologies and that could provide high-quality computerized psychotherapy at large scale. One of us had an experience with Common Lisp and from there we found Clojure. After digging into the language we found out that developing web applications with Clojure was a pure delight.

In this talk we will describe the domain of computerized psychotherapy and some of its challenges. We will argue why we believe that Clojure is a perfect fit for developing web applications in this domain. Our own experiences this far of using Clojure will be described. Finally, we will discuss how we believe Clojure and its eco-system could help out even further in reducing the heavy burden of mental illness in society.

Finally we can write native mobile apps for multiple platforms in our favorite language! React Native is a framework developed by Facebook for building native mobile apps using JavaScript and React which makes it a natural fit for ClojureScript. In this talk I will go through:

Clojure tames state by casting it as a succession of values. We can think of spacetime this way too. An observer is merely an atom through which pass a succession of universes.

Within a process boundary we can use a Clojure atom to provide a single stable value. But what if we want to extend this boundary to the edge of the universe?

Today, we have tools at our disposal to begin constructing such a thing: hashes, MVCC, Merkel trees and time-travelling databases.

I will begin this talk by explaining these ideas and their expression in the juxt library Skippy McSkipface. I will end by demonstrating how these ideas can produce systems that respond quickly to change, e.g. responsive development environments and virtually instant live deployments.

Owl Lisp is a purely functional dialect of Scheme. This talk outlines the history of the language and similarities between it and Clojure, spiced by rants about information (in)security, development war stories and programming language semantics in general.

Rum is a React-based ClojureScript web framework with ability to render static pages on JVM. It’s specifically designed to be simple, small, extensible and unopinionated. In this talk we’ll explore Rum features, philosophy behind its design, differences from other frameworks, best practices, and how to set up your application so that it’ll be served pre-rendered, but work interactively once it’s loaded.

Doing data science with Clojure: the good, the bad, the ugly (Simon Belak)

Having programmers do data science is terrible, if only everyone else were not even worse! The problem is tools – either a bunch of libraries and an agnostic IDE, or some point-and-click wonder which no matter how glossy never quite fits our need. The dual lisp tradition of grow-your-own-language and grow-your-own-editor gives me hope there is a third way. This talk is a meditation on how I do data science with Clojure, what the ideal process would look like, and the tools needed to get there. Some already exists (or can at least be bodged together); others can be made with relative ease (and we are already working on some of these); but a few will take a lot more hammock time.

Clojure is fantastic for data manipulation and rapid prototyping, but falls short when it comes to communicating your insights. What is lacking are good visualization libraries and (sharable) notebook-like environments. I'll show my workflow which weaves Clojure with R (for ggplot) and Python (for scikit-learn) and tell you why it's wrong; how IPythons of the world have trapped us in a local maximum and why we need a reconceptualization similar to what a REPL does to programming. All this interposed with my experience doing data science with Clojure (everything from ETL to on-the-spot analysis during brainstormings) and how these are interwoven into the design of Huri my library for the lazy data scientist.

Transducers are great for many things. You can define complex algorithms in a simple way. The end results are maintainable algorithms that also run fast. They are fully supported in Clojure core and it is possible to speed up many algorithms even more by using transducers in a parallel fold.

However, with lots of data and heavy algorithm one machine with all cores utilized is not enough for processing the data in a reasonable amount of time. There are a wide variety solutions (e.g. Hadoop) for running you algorithms in a distributed way. Those approaches typically require you to write the code with specific api and setting all the machinery is quite a hassle. My vision is to have a way for easily scaling transducer approach from one machine to multiple machines with minimal code changes.

In this talk I will present a proof-of-concept of that idea using AWS Lambda for distributing transducing to multiple nodes running in a cloud in a transparent way.

The latest big announcement from Cognitect is clojure.spec. It comes with a promise of better runtime checking, improved error messages, and a shared vocabulary for communicating the structure of data.

In this hands-on talk I'll start with the basics, then work up to more complex examples. I'll show you how to write specs, and how to use them to instrument functions, parse data, and do generative testing.

:speakers

David Nolen is a curious programmer, musician, and teacher living in Brooklyn. He currently writes Clojure, JavaScript and Ruby for Cognitect. He also helps run the affordable Kitchen Table Coders workshops from a Brooklyn studio. In his free time he contributes to several open source Clojure projects including core.match, core.logic and ClojureScript.

When not plotting for world domination with quadrocopters he helps Finnish industry and government organisations to adopt Clojure. 23 years of professional experience in developing business-critical software.

Robert Johansson

Robert Johansson, PhD, is a licensed psychologist and a researcher at the Karolinska Institute, Stockholm Sweden. Since 2009, he has conducted research on computerized psychotherapy. He had some basic training in Common Lisp from the late 1990’s and through that learned about Clojure in late 2014. Since then, he has practiced Clojure with the aim of building web applications for providing computerized psychotherapy.

Viktor Eriksson

Got lured into the Clojure(Script) world and haven't found a compelling reason to leave it. I refuse to understand where Clojure should and should not be used, was tempted to write my Masters Thesis on Embedded Systems in ClojureScript.

I am currently working on Pilloxa, a Swedish IoT startup in Mobile Health that is leveraging Clojure to the fullest.

Aki HelinSolita

Nikita is Clojure hacker from Siberia. He builds backends, web apps and distributed systems in Clojure for a living, blogs about Clojure, web and UX. He’s the author of DataScript, Rum, Fira Code and AnyBar.

Built my first computer out of Lego bricks and learned to program soon after. Emergence, networks, modes of thought, limits of language and expression are what makes me smile (and up at night).

Currently working at GoOpti making the company data-driven; setting up our analytics infrastructure (end goal: provide any answer stemming from data in 2 min or less); and building our predictive-realtime-superduper pricing engine.

Markus is a polyglot programmer writing Clojure, Javascript and Ruby 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.

Founder of Lambda Island, a screencast that will improve your Clojure and ClojureScript skills, Arne also organizes ClojureBridge Berlin, runs the Berlin Emacs meetup, and maintains the Chestnut application template.

Extensive traveling has given him a deep appreciation of cultural variety and human individuality, something that influences his work daily. Originally from Belgium, his current home base is Berlin; he can be found there brewing fine teas, and pondering the future of open-source and the web.

: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?

If you notice any wrong doing please contact any organizer. You can also call or send an SMS to number +358 50 326 2280 (Mikko).