ScalaUA-2019 Abstracts

Alexander Nemish – Interesting Scala Collections (20 minutes, Lightning Talk)
Some facts about Scala Collections I find interesting, and what many developers probably don't know.  
Anatolii Kmetiuk – Theory of Constraints in Programming: Beyond Problem-Solving
It's talk not directly related to Scala, but about intention for problem solving. Theory of Constraints, coined by Eliyahu M. Goldratt, comes from the business world and explains how to debug complex systems with interdependencies and exploit them to their utmost capacity. Programming challenges constitute complex systems too. In the Scala community, there is a lot of attention lately to purely functional style, Monads, Cats etc etc – but without treating these concepts as a part of a larger, interconnected system (starting from the programmer's mind and potentially expandable to the scales of the entire world), it is possible to deteriorate the entire system. In this talk, I am going to explain what motivated me to discover and incorporate the Theory of Constraints in my programming style, how we naturally go from problem-solving to problem-definition this way, and why purely functional style is not a silver bullet  
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.  
Daniel Beskin – Compile Time Logic Programming in Scala – What For? (45 minutes)
It has been known that Scala's implicits allow one to write Prolog-like programs that run at compile time. Although letting the compiler solve your daily Sudoku puzzle for you is fun, how could that possibly be useful in an actual program? Taking a step back, as vigilant observers of type safety, we try to leverage the type system to ensure the correctness of our code; but when the domain constraints become too involved, constructing the appropriate types might become cumbersome. In this talk, after introducing some basic Prolog phrased in the language of implicits, we'll see how this newfound power can free us from the burden of type construction by letting the compiler do most of the grunt work for us.  
George Yarish – Building recommender system with matrix factorization (45 minutes)
Online retailers are always fighting to bring more traffic to their websites, so they have begun to provide more services to make as many sales as possible. With recommendation systems and Big Data techniques, companies will be able to apply users information and behavior so they can provide more efficient targeted services. This talk presents a solution that we in Grid Dynamics were able to deliver to one of our customers. The Scala and Spark application incorporates a collaborative filtering approach and Alternating Least Squares algorithm, a very well-known and widely-used algorithm among many world marketing internet leaders.