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.

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

:registration

ClojuTRE registration is open

Small FP registration is open

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

:talks

TBD (Zach Tellman)

Coming later

Clojure Flavoured Devops (Jon Pither)

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!

Developing (with) Keechma (Mihael Konjevic)

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.

Livecoding the Cloud! (Christophe Grand, Kimmo Koskinen)

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

Lumo: Bootstrapping a Standalone ClojureScript Environment (Antonio Monteiro)

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.

Metaphors We Compute By (Alvaro Videla)

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.

Scrap your query boilerplate with specql (Tatu Tarvainen)

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.

The Heresy Programming Language, or Learning Through Madness (John Berry)

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.

The Symmetries of Things (Tom Hall)

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

Towards Awesome Clojure Documentation (Bozhidar Batsov)

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!

Small FP: Having Your Cake and Eat it Too (Josef Svenningson)

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.

Small FP: Scalable web frontend development in Scala (Otto Chrons)

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.

Small FP: Performance In Reagent and re-frame Applications (Esko Lahti)

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.

How to design a large SPA with Reagent and re-frame without suffering performance issues? What are good design guidelines when writing a re-frame application and how to debug performance issues?

In this talk we'll go through some common mistakes that could cause performance issues to your application. We'll also discuss how to notice and solve these issues.

Small FP: Mobile Web Apps in F# with WebSharper (Adam Granicz)

In this talk, you will learn about developing functional, reactive, full-stack F# mobile applications for Android/iOS with WebSharper. WebSharper provides a powerful toolset for developing SPAs, writing and consuming backend services, debugging with .NET source maps, interfacing with mobile JavaScript libraries, and many other features that make web and mobile developers both happy and productive.

Small FP: Type-level fun with RowLists in PureScript (Justin Woo)

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.

:speakers

Zach Tellman@ztellman, ,

Talk: TBD

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

Jon Pither@jonpither, ,

Talk: Clojure Flavoured Devops

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.

Mihael Konjevic@mihaelkonjevic,

Talk: Developing (with) Keechma

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.

Christophe Grand@cgrand, ,

Talk: Livecoding the Cloud!

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,

Talk: Livecoding the Cloud!

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.

Antonio Monteiro@anmonteiro90,

Talk: Lumo: Bootstrapping a Standalone ClojureScript Environment

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.

Alvaro Videla@old_sound, ,

Talk: Metaphors We Compute By

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.

Tatu Tarvainen@tatut,

Talk: Scrap your query boilerplate with specql

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.

John Berry@J_Arcane,

Talk: The Heresy Programming Language, or Learning Through Madness

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.

Tom Hall@thattommyhall,

Talk: The Symmetries of Things

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

Bozhidar Batsov@bbatsov, ,

Talk: Towards Awesome Clojure Documentation

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.

Josef Svenningson

Talk: Having Your Cake and Eat it Too

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.

Otto Chrons@ochrons,

Talk: Scalable web frontend development in Scala

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.

Esko Lahti

Talk: Performance In Reagent and re-frame Applications

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.

Adam Granicz@granicz

Talk: Mobile Web Apps in F# with WebSharper

Adam is the CEO of IntelliFactory, specializing in developing F# enterprise web and mobile applications. He is a 7x F# MVP, the author of five F# books, key F# community member and evangelist, and a regular speaker at developer conferences and workshops.

Justin Woo@jusrin00,

Talk: Type-level fun with RowLists in PureScript

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

LeanheatNetumEvoltaCinia

Silver

GoforeNitorFlowaJUXT

After-party

Reaktor

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