Michał Kowalczykiewicz — Love Affair Between Functional & Declarative Programming (45 minutes)

In this presentation I will show how we combine declarative and functional programming. Many of our retail-apps run on LogicBlox (application framework) and are written in the pure-declarative language LogiQL (implementation of first-order logic, superset of Prolog/Datalog). Both of these technologies are developed at Infor/Predictix. What is interesting is that some time ago we started to… generate the declarative code. …

Michał Kowalczykiewicz — Love Affair Between Functional & Declarative Programming (45 minutes)

In this presentation I will show how we combine declarative and functional programming. Many of our retail-apps run on LogicBlox (application framework) and are written in the pure-declarative language LogiQL (implementation of first-order logic, superset of Prolog/Datalog). Both of these technologies are developed at Infor/Predictix. What is interesting is that some time ago we started to… generate the declarative code. …

Paweł Szulc — Formal specification applied (with TLA+) (45 minutes)

1.1 Elevator Pitch Formal verification promises software without bugs. At the same time even its name scares programmers away («It’s math! run for your lives!»). This talk will familiarize you with one form of formal verification: a model checker — one that is available in a formal specification tool called TLA+. 1.2 Description Formal methods (and formal verification) promise something …

Pavel Shirshov & Michael Feldman — distage: Modern Dependency Injection for Scala (45 minutes)

Many Scala developers nowadays consider using Dependency Injection frameworks an anti-pattern incompatible with modern FP settings. We argue that it’s just a consequence of a bad experience with legacy Java runtime reflection-based implementations that lack features important for modern functional programming, such as a first-class support for higher-kinded types. We argue that as a paradigm for structuring purely functional programs, …

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 querying 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 …