“Rounding”, Karl Brodowsky
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.
«50 shades of Scala Compiler», Krzysztof Romanowski
This is not a presentation about what Scala compiler is or how does it work. Instead I will try to count how many compilers Scala currently has and how the most important ones are used. I will compare SBT’s and Intellij’s incremental compilers, Scala IDE’s and IntelliJ’s presentation compilers and show why toolbox compiler (compilation in runtime) cannot understand packages. I will also give hints how to write and organize scala code to optimize various Scala compilers performance in your environment.
«Building DSLs with Scala — DSLs are everywhere», Alon Muchnick
DSLs are everywhere. Have you ever used SQL, Ant or maybe HTML? If so you were using a DSL, maybe without realizing it. Domain-Specific Languages, or DSLs, provide convenient syntactical means of expressing goals in a given problem domain. A well-crafted DSL communicates the essence and means of the domain it represents in a natural way, so that you don’t even think about its underlying technology. Scala’s rich, flexible syntax combined with its OO and functional features makes writing DSLs a breeze. In this talk I'll introduce the concept of DSLs, where to best apply them, their pros and cons, and how to integrate DSLs into your core application. We will see a practical example of how to lever the tools Scala gives us and build our very own tax calculation DSL.
«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, simple and maintainable. Specifically we’ll discuss how the “given-when-then” pattern affects the way you factor your code, and showcase the remarkable differences between a sloppy specification and a well-factored one.
«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 will go through the notion of Type Class pattern and how we can derive instances for generic ADTs. There will be a short livecoding sessions throughout the talk, covering some of the specific type-level patterns.