Beyond the two obvious well known rounding modes there is a lot more to know about this topic, from a more abstract explanation what rounding means, some issues with regular rounding are discussed and the concept is extended in several ways. Finally the issue of rounding a set of numbers with a defined sum simultaneously is discussed. Watch Speakers speeches …
“Flawors of streaming”, Ruslan Shevchenko
Functional Streaming becomes one of the key techniques, used in data processing, which impacts software architecture on the micro and macro levels. In the first part of the talk, we will outline key ideas and their implementations. Then we will look into API and internal details of scala-gopher: a CSP-style concurrency framework builds on top of akka and async macro, …
«Demystifying type-class derivation in Shapeless», Yurii Ostapchuk
Have you been scared when you’ve seen shapeless for the first time? Like I was? Well, in this talk I will try to demystify some of the core concepts of this elegant library, try to give you a hint on how to approach it. We will start from the basics, rethinking ADTs in Scala and their generic representations. Then we …
«Property-based testing with ScalaCheck», Slava Schmidt
ScalaCheck is a well known testing framework with about a dozen of talks already dedicated to it. Though detailed most of them present the features of the framework in a rather abstract way, often using undemanding examples. In this live-coding session we will develop a small yet complete game using ScalaCheck to drive the development process. Watch Speakers speeches at …
«Mastering Optics in Scala with Monocle», Shimi Bandiel
Lenses are an important functional-programming “design pattern” often described as “immutable getters and setters”. In this session, we’ll get familiar with optics-related patterns (e.g.: Lens, Prism, Traverse, Iso) based on the popular Monocle library. The session targets Scala developers who feel at ease with Scala syntax. Watch Speakers speeches at ScalaUA2017
«Spark for noobs», Paul Lysak
An introduction to Apache Spark for those who might have heard of it but never tried, and for those who mastered some basic tutorials but still unsure how to use it in real project. It covers basic Spark concepts, execution model, overview of approaches for running Spark application with special focus on Amazon EMR, some not-so-complex tricks and performance considerations …
«Clean Tests — how to apply clean code principles on your tests», Noam Almog
Isn’t a news, and most everyone agrees that writing tests (before, during or after implementation) is valuable. Hardly anyone agrees on what good, clean tests look like, though; if your tests are a live specification of your codebase, don’t they deserve the same care and attention as your production code? This talk focuses on how to keep your tests readable, …
«Implementing CQRS with Akka», Michał Tomański
Command Query Responsibility Segregation is an innovative pattern focusing on the way we interact with our data. The core idea is that we split our data model into two: write model and read model. It’s getting more interesting when we mix CQRS with Event Sourcing. This approach might leave us with two separate databases, namely a storage for events and …
«Scala Refactoring: The Good the Bad and the Ugly», Matthias Langer
Did you ever wonder why Scala Tooling has such a hard time catching up with Java? If so, this talk will give you some answers, using the Scala Refactoring Library as a case study. You will hear about the advantages and disadvantages of the Scala Presentation Compiler, learn what Abstract Syntax Trees are, and how the the new scala.meta framework …
«Saving the stack for fun and profit», Marco Borst
In a life coding session, Marco, saves the stack from overflowing. From a blank screen to a working library, we’ll encode a 30 line algebraic data type that factors recursion out of recursive algorithms and moves the algorithm from the stack to the heap, a functional programming technique called trampolining. This session is of interest for every beginning Scala programmer …