clojuTRE & Small FP Conf 2017

Clojure & FP event for programmers
Tampere, September 1-2nd 2017

:about

clojuTRE is a 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 draft beer. We welcome both newbies and seasoned Clojurists. Main event is held on Saturday 2.9.

Small FP Conf is a small conference, dedicated for presentations about other languages than Clojure, held on Friday 1.9. Talks will start at 3-4PM and and the event lasts about 3 hours. There will be a joint after-party with clojuTRE on Saturday evening.

Past events: 2016, 2015, 2014, 2013 and 2012.

Videos for the event are available on YouTube:

:location

In Tampere, Finland.

Tullikamarin Pakkahuone
Tullikamarin aukio 2
33100 Tampere
Finland

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

:program

Friday - Small FP conf

Friday is dedicated for presentations about other languages than Clojure. Are you interested about Elixir, Haskell, TypeScript or something?

The venue is open from 15:30. Be on time so you have time to get your badge.

Friday - Talks - 16:00-19:00

Saturday - Main Event

The main event will start at 12:00 and end at 19:00.

The venue is open from 11:30. Be on time so you have time to get your badge.

Saturday - Talks - 12:00-19:00

Saturday - Afterparty - 19:00

We will start with some beers and food at the Pakkahuone. Saturday's afterparty is open for attendees of both days.

  • 19:00 Beer and other refreshments (Sponsored by Reaktor)
  • 19:30 Food

:talks

#On Abstraction

The software industry is awash in folk wisdom. The "rule of three" tells us that we should only create a generic implementation once we've solved a problem three times. The Knuth quote about "premature optimization" either tells us that optimization is always bad, or bad 97% of the time, depending on how much of the quote we bothered to read.

None of these prescriptions describe a context in which they might not apply. Taken literally, most are wildly misleading. To use them properly, we must already have a nuanced understanding of software.

This talk presents a framework to intuit these same insights, but also their boundaries. It provides concepts and vocabulary that enable the viewer to not only explain how a problem should be solved, but why.

Zach Tellman@ztellman, ,

Zach is the author of Elements of Clojure, and a number of open source libraries. He has approximate knowledge of many things.

#Clojure Flavoured Devops

Getting stuck in battle with command line Sed, AWK, Perl and friends? Trying to provision your cloud environment using good old JSON, and just wish you had some.... you know, data manipulation ability on hand? Do you secretly love Make and just wish you could run adhoc ClojureScript tasks without having to dwell on packages and namespaces, depedencies and requires?

We would like to introduce how we do DevOps and Cloud Provisioning, using Mach - a ClojureScript replacement of Make built on Lumo - and Roll, a ClojureScript wrapped Terraform setup for building you a Blue/Green custom PaaS.

We will also discuss our approach to config - one config to rule them all!

Jon Pither@jonpither, ,

Jon Pither is a development team leader by trade, having led several high profile Clojure projects including introducing Clojure at multiple Investment Banks, an online newspaper website, a major property portal, and an international public electric bikes scheme. Jon is a co-founder of JUXT, a consultancy specialising in using Clojure and other best of breed technologies.

#Developing (with) Keechma

Last year I've released Keechma - a frontend micro framework for ClojureScript. Since then we've built a bunch of apps with it, and in this talk I'll talk about our experiences and challenges we encountered along the way. I will also cover how Keechma's architecture allowed us to tackle these challenges and the supporting libraries that were written as a result of our experience.

Mihael Konjevic@mihaelkonjevic,

Mihael Konjevic is the author of the Keechma framework. He's been working as a web developer for over a decade, and currently works as a CTO of http://floatingpoint.io - a company he started to be able to work with technology he likes. In his free time he's practicing martial arts and likes to travel.

#Livecoding the Cloud!

Develop AWS lambdas right from the comfort of your repl: no edit-package-deploy cycle, just plain blissful and glorious repl experience. (This talk is unfit for tree-hugging audiences as some violent tree-shaking is depicted.)

Christophe Grand@cgrand, ,

Christophe is an independent dev and trainer, working from the french countryside. He has been clojuring for so long that he remembers when there was no multimethods and core.clj was called boot.clj. He is least known for suggesting the ^:keyword shorthand to Rich and mildly known for some libs and coauthoring Clojure Programming (O'Reilly).

Kimmo Koskinen@KimmoKoskinen,

Kimmo is lucky enough to hack in Clojure for fun and at Solita where he works in the buzzing world of real-time analytics, creating data pipelines in AWS with Clojure. Father of two active boys.

#Lumo: Bootstrapping a Standalone ClojureScript Environment

ClojureScript ships with optional compiler self-hosting since late 2015. Although a feature unbeknownst to many, bootstrapping the compiler represents the next giant leap in Clojure’s reach, raising the number of platforms where it can execute to a new maximum. Lumo is a new, cross-platform, standalone ClojureScript environment that boots instantly and has out-of-the-box access to the entire Node.js ecosystem. Lumo serves many purposes: a fast booting REPL, scripting, build tools, IDE connection through its socket server, and more recently, the ability to compile entire ClojureScript projects with optimizations (thanks to Google Closure Compiler's JavaScript port). This talk covers the lessons learned from building the fastest starting Clojure(Script) environment in existence, shares some of the tricks it employs, and the hurdles that future endeavors intend to overcome. You will discover how easy compiling ClojureScript in ClojureScript actually is , learn about common myths around bootstrapping the ClojureScript compiler, and what Lumo can do for you.

Antonio Monteiro@anmonteiro90,

António is a functional programmer and a regular contributor to ClojureScript and Om. He works as a Software Engineer at Ladder, a company that is reshaping the life insurance market.

#Metaphors We Compute By

We think in words, we talk with words, we understand the world thanks to words. Metaphors take words to the next level explaining concepts that were escaping our understanding before. In 1980 George Lakoff revolutionised the Linguistic and Philosophic worlds when he studied how metaphors affect our thinking, how they influence our actions and even shape who we are. What happens with the metaphors that we use in the Software Industry?

In this talk we are going to review the importance that metaphors have in our code quality, in the algorithms we choose, and the products we ship.

Alvaro Videla@old_sound, ,

Alvaro Videla used to work at Apple as a Distributed Systems Engineer and previously was a Core Developer for RabbitMQ. Before moving to Europe he used to work in Shanghai where he helped building one of Germany biggest dating websites. He co-authored the book "RabbitMQ in Action" for Manning Publishing. Some of his open source projects can be found here: http://github.com/videlalvaro. Apart from code related stuff he likes traveling with his wife, listening/playing music and reading books.

#Scrap your query boilerplate with specql

Specql is a new library for PostgreSQL that introspects your tables at compile time to create clojure.spec definitions and runtime information. Specql provides generic crud operations (including upsert!) with fully namespaced keys.

The talk will showcase the uses of the library with real-world examples and also provide information on how to integrate external information to your clojure.spec definitions.

Tatu Tarvainen@tatut,

Tatu is a software architect and resident Clojure evangelist, a parenthusiast if you will, at Solita and is currently working on a large scale public sector service in Clojure/ClojureScript.

#The Heresy Programming Language, or Learning Through Madness

The author demonstrates the fun and value of experimentation and learning through doing, by presenting key features of the Heresy programming language and how they implement functional programming concepts in unique and possibly questionable ways. Heresy is a BASIC-inspired dialect of Lisp designed originally as a learning tool for functional programming, with a focus on immutability without expense to ease of use.

John Berry@J_Arcane,

John Berry is a largely self-educated writer, comedian, and software engineer with a special passion for functional programming and Lisp languages. Formerly a Clojure developer at our esteemed hosts, the author now toils in the Scala mines deep within the bowels of a local food delivery app.

#The Symmetries of Things

Symmetry is everywhere, from constraining how builders lay brick to guiding physicists as to the nature of reality.

In the short book The Symmetries Of Things the mathematician John Horton Conway, in his uniquely playful style, classifies all the symmetries of the 2D plane.

In this talk you will learn the Magic Theorem, how many plane symmetries there are, how to identify miracles and wonder-rings and see lots of pretty pictures draw with Quil and a tasty Clojure DSL

Tom Hall@thattommyhall,

Doing a mix of Dev and Ops that might be called DevOps, part time mountaineer, mathematician.

#Towards Awesome Clojure Documentation

Most developers allegedly hate writing documentation. On the other hand, pretty much everyone considers good project documentation to be a strong indicator of the project's quality. Go figure!

In this session we'll examine the state of the current documentation initiatives and practices in Clojure, some overall problems with documentation in Clojure and some potential solutions. Here's a few topics will touch upon:

  • the various Clojure documentation projects
  • the quality of the official Clojure documentation
  • lessons we can learn from other Lisps when it comes to documentation
  • adopting a common convention for structuring docstrings
  • additional documentation metadata

Documenting things can be fun and extremely rewarding! Join us and find out how!

Bozhidar Batsov@bbatsov, ,

Bozhidar is the maintainer of CIDER and the editor of the community Clojure style guide. Most people would probably describe him as an Emacs zealot (and they would be right). He's also quite fond of the Lisp family of languages, functional programming in general and Clojure in particular.

Believe it or not, Bozhidar has hobbies and interests outside the realm of computers, but we won't bore with those here.

#The Previous Year of ClojureScript

Last year David Nolen gave a presentation about history and future of ClojureScript here. My presentation is one contributor's view of what has happened during the last year, and some ideas what might happen next. I will introduce the latest features, why they exist, why the are important and what are we still missing.

Juho Teperi@juhoteperi,

Juho Teperi is a Clojure programmer at Metosin. He works on enterprisey Clojure projects, but doesn’t yet (anymore) know what is the best solution to building complex Clojure(Script) applications. Still, he is aware that low-level tools and libraries, are important part of a good ecosystem.

#Small FP: Having Your Cake and Eat it Too

As programmers we build increasingly complex software by creating abstractions and composing them. While this method is good for programmer productivity it comes at a performance cost and usually results in slower programs.

In functional programming, and Haskell in particular, there is a popular idiom to compose abstractions using an intermediate data structure: a producer function generates some piece of data which handed over to a consumer function. This form of composition suffers from having to allocate the intermediate data.

To deal with the cost of composition, the Haskell community has adapted an optimization, called fusion, which can eliminate intermediate data structures and fuse together a producer and a consumer into one function. The net result can often be as good as hand-tuned code. This talk will cover various forms of fusion and how they enable programmers to create and use guilt-free abstractions which don't come with a performance cost. It's like having your cake and eating it too.

Josef Svenningsson

Josef Svenningsson splits his time between being a consultant at HiQ and an Assistant Professor at Chalmers University of Technology. At HiQ he's currently stationed as a designer and systems manager for Ericsson. On the academic side he has a broad range of interest in computer science and has published papers on wide variety of topics, including: program analysis, constraint solving, security, programming language design, testing and high-performance computing. His programming language of choice is Haskell.

#Small FP: Scalable web frontend development in Scala

Scala.js allows developers write robust and scalable web frontend apps purely in Scala. This talk gives an introduction to Scala.js and what it brings to frontend development. We will use as examples two Scala libraries, Suzaku and Diode, that allow developers write clear, concise and (mostly) functional UI code purely in Scala.

Otto Chrons@ochrons,

I'm a coder, serial entrepreneur and a long time contributor in the Scala ecosystem, including scalafiddle.io and popular libraries like Diode and Boopickle.

#Small FP: ClojureScript Web Applications

Reagent is a framework used to create React applications in native ClojureScript. Re-frame offers a state container framework that is often used with Reagent.

In this talk we'll go through some basics of developing functional web applications with ClojureScript. This talk will also cover some common Reagent/re-frame design problems using a real-world example.

Esko Lahti

Esko is a programmer at Reaktor. He loves solving complex problems where both deep technical understanding and interaction with people are involved, although best thing in his work is that he gets to write Clojure and ClojureScript daily.

#Small FP: Functional programming simplifies reasoning

The practical experience of many FP enthusiasts says that function purity and data immutability are good for you and your program. In order to gain some theoretical support to this intuition, we take a mathematical look at a simple sorting algorithm, in both imperative and functional implementations. They both achieve the same thing, but the formal tools needed to explain why and how they exactly work, are quite different in style and complexity.

Juhana HelovuoAtostek

Juhana Helovuo programs at Atostek, nowadays mostly for mobile robots. Previous experience includes the design of a highly parallel functional programming language, implementing a compiler for it in Haskell, and several pieces of mobile robot control and planning software, mostly in F# and Haskell.

#Small FP: Type-level fun with RowLists in PureScript

This talk will go over the RowList type-level structure in PureScript and how it can be extracted from row types for applications such as JSON serialization, type constraints, working with sophisticated record types, and more.

Justin Woo@jusrin00,

Justin is a failed material scientist who now spends his time writing JavaScript for work and Purescript/Haskell for fun. He lives in Finland as a result of being Twitter friends with André Staltz.

: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).

:sponsors

Organizer

Metosin

Platinum

SolitaUpcloud

Gold+

Siili

After-party

Reaktor

Gold

LeanheatNetumEvoltaCiniaLambdawerkHappy or Not

Silver

GoforeNitorFlowaJUXT

If you interested in sponsoring the event contact clojutre2017@metosin.fi for information.