«Datomic – the functional database», August Lilleaas
Datomic is a brand new kind of database. Queries runs on the client/app, not on the database server. It writes data to other databases, instead of implementing its own storage engine. It has a completely different API for reads vs. writes. And it's single threaded (and, believe it or not, this is an amazing idea). This will be a quick run-through of Datomic and why the aforementioned things are not just good, but great!
«Evolution of ads management platform architecture from Akka Cluster to Akka Streams Kafka», Andrew Lashchenko
During this presentation, we will carefully examine the evolution of the ads management platform’s architecture that has been an existing process for over 3 years. The original intent was to generate recommendations based on analysis of reporting data that was obtained from various programmatic advertising platforms. Thus, the system was created exclusively for the internal use by a team of campaign managers. This project turned into a complete platform with full capabilities to create and manage advertising campaigns across premium digital destinations and target over 25 premium native, social and content discovery channels. This presentation will outline how ads management platform’s architecture has changed over time, why the original decision was to use the Akka Cluster, numerous issues and challenges encountered during this project with their respective solutions and transition from the batches to streaming processing that utilizes Akka Streams Kafka.
«Freestyle, Free & Tagless: Separation of Concerns on Steroids», Michał Płachta
You will learn how to cut your applications into isolated, independent pieces using Freestyle library with free monads or tagless final style. The session is based on a multiplayer, purely functional version of Prisoner’s Dillema. Our applications frequently consist of business logic, communication, persistence, caches & logging. We always want to keep them apart and reason about each of them individually. However, this is very difficult to achieve in practice. Enter free monad. It lets us decouple those concerns by dividing our program into algebras and interpreters. I will show you an application built on top of free monad in Scala & Cats. You will learn how to create pure & declarative DSLs, side-effecting interpreters and how to use them together. Then I will introduce Freestyle library and show how it makes the code more concise. At the end I will compare the free monad approach to another technique used to decouple concerns: final tagless.
«From Scala to Assembly – a view of Scala’s ByteCode», Alon Muchnick
We all know and love our Traits, Objects, Lazy definitions and other goodies Scala gives us, but how are they really implemented under the hood ? Understanding what's going on underneath the covers of your code can be very beneficial and can lead to insights that may affect the way you write code. In this session we will take a deep look into the JVM to show how Scala does its magic by examining the bytecode that is being generated. We will also see how debug symbols can help IDEs debug our code and an easy and friendly way.
«Hands-on Image Recognition with Scala, Spark and DeepLearning4j», Guglielmo Iozzia
Who said that Python is the only programming language choice for Deep Learning matters? This talk will give first a 101 intro to DeepLearning4J, an Open Source distributed framework integrated with Hadoop and Spark that can be used on CPUs and GPUs and has, despite the final “J” in its name, support for Scala. Then it will walk through some simple image recognition example based on DL4J and Spark.