ScalaUA-2019 Abstracts

Vitalii Honta – Cakeless – better reader monad for deeply-nested cakes
Unlike classic Reader, CakeT allows to accumulate dependencies in `flatMap` monad. flatMap takes CakeT with different dependency type. flatMap resulting type is `Union` type of both `self.Dependency` and `that.Dependency` Dependencies are picked up by special macro on the type level. By default they are represented as `shapeless.HList`. User is allowed to transform the dependency using (into other type by hands or directly into `case class` using `shapeless.Generic`) User can chose specific constructor by its sequence number providing literal integer. Depending on constructor number appropriate dependency type will be picked up. Also cakeless provides lifecycle management (preStart, postStart, etc.), safe resource allocation and release (using cats.effect.Bracket).  
Vitalii Kotliarenko – How we build language models at Grammarly (20 minutes, Lightning Talk)
Statistical language models (LMs) are one of the core concepts in natural language processing (NLP). In essence, it is a probability distribution over sequences of words. Simple yet powerful LMs like n-grams have found their application in machine translation, general error correction, and many other areas of NLP. This talk put the light on the process of training of the n-gram language model on large corpora, reveal challenges on the way of implementation of the pipeline in Scala and Apache Spark.  
Wiem Zine Elabidine & Oleksandra Holubitska – Tour of ZIO
This talk is an introduction of purely functional programming type safe abstractions that provide a variety of features for building asynchronous and concurrent applications data structures built on ZIO. By the end of the presentation, you'll learn about the power of functional programming to solve the hard problems of software development in a principled way, without compromises.  
Xavier Tordoir – Introduction to Tensorflow in Scala (45 minutes)
Machine learning (ML) is becoming a common component of software. ML engineering is an emerging field, tools and good practices being gradually developed. Tensorflow is a very popular ML framework with a growing ecosystem for production purposes: Tensorflow Serving and Hub. Using a Scala environment, we introduce Tensorflow and its use (learning models and predicting), and how to work with add-ons for production.  
Zahari Dichev – Backpressure over the wire – when things go wrong (45 minutes)
Frequent bursts of high load bring the need for today’s systems to be engineered for stability and elasticity. One aspect of designing reliable and scalable systems is backpressure. In this lecture we will take a look at how Kafka, RabbiMq and Akka achieve that and point out some of the problems that have recently been fixed in these products. We will conclude with an overview of StreamRefs - a great new way to bring backpressured streams over network boundaries. Expect deep dives into the internals of Akka Streams, protocols such as TCP and AMQP, lots of code examples and a great deal of fun.