ScalaUA-2019 Abstracts

Maciej Gorywoda — Cellular Automata: How to become an artist with a few lines of code (20 minutes, Lightning Talk)
Let's face it: most of the time our work is boring. We just glue stuff together and test if it doesn't blow up. Where’s our promised fun in programming? Right, it’s in fun-ctional. Haha. No. Fun is when great things arise from humble beginnings. You write a small piece of code, run it, and see a complex pattern unfolding. That’s intriguing. That’s what get your interest. Cellular Automata are a very universal model of computations, letting us predict weather, model animal behavior, or city traffic, as well as generate mathematical art. In fact, it’s even possible to simulate automata with other automata, and that’s a thing that always makes computer scientists super-excited. What’s also fun is that a cellular automaton (singular) is a little cute piece of immutable data to which we can apply a range of FP techniques in order to run complex simulations with very little of actual code writing. During this talk we’re going to do just that. We’ll start with some theory, then move to some short code examples, and finish with discussing how can it all help us solving real problems. I promise that you won’t learn anything that is immediately useful, but - I hope - it will inspire you.  
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.  
Maksym Ratoshniuk — LogStage: Zero-cost Structural Logging for Scala (45 minutes)
Everybody needs logs. Humans and machines. Logs should be structured, json and text format. Library should me modular, provide full customisation of router, rendering policies, sinks, dynamic client context. What if we could provide a such logging library with compile-time structure and context extraction which satisfies both? Let’s dive into LogStage and try to implement own asynchronous sink for logs.  
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.  
Andrii Lashchenko — Spray Json and MongoDB Queries: Insights and Simple Tricks
This presentation will cover the history of creation, implementation details and various challenges related to embedded documents fquerying in MongoDB, along with examples of how to properly create and utilize the extension on top of official MongoDB Scala Driver. This newly introduced extension allows to fully utilize Spray JSON and represents bidirectional serialization for case classes in BSON, as well as flexible DSL for MongoDB query operators, documents and collections.