Scala Days Copenhagen 2017
2017-05-30..2017-06-02
Copenhagen, Denmark
| title | author | length |
|---|---|---|
| Keynote - What's Different In Dotty | Martin Odersky | 01h 01m |
A technology preview ships as dotc compiler plus a VS Code language‑server IDE and an IntelliJ integration; roadmap targets Scala 2.13 / early 2018, a 6‑week… | ||
| Keynote: Tools for Verified Scala | Viktor Kuncak | 52m |
A verification toolchain centered on Stainless (evolved from Leon) analyzes a pure-Scala subset, emits concrete counterexamples, and proves correctness for all… | ||
| Keynote - Open source is just about the source, isn't it? | Isabel Drost-Fromm | 01h 01m |
Argues that healthy open source needs governance, legal and outreach work beyond code, with concrete practices and outcomes: chooses Apache license for… | ||
| Keynote - What to Leave Implicit | Martin Odersky | 01h 04m |
Scala’s implicits are evaluated as concrete design changes: Dotty already merges a tighter implicit conversion rule and implicit converters, and adds lazy… | ||
| Keynote - Rust: confident, productive systems programming | Aaron Turon | 01h 05m |
Rust claims that its ownership model gives memory safety without garbage collection, and guarantees no data races via the borrow checker. Examples: a C++-style… | ||
| Keynote - Jepsen 7: Anna Concurrenina | Kyle Kingsbury | 53m |
Generates randomized operations with Jepsen testing and injects network partitions, clock skew and process pauses to check invariants like linearizability and… | ||
| How I learned to stop worrying and love the frontend | Otto Chrons | 31m |
Scala.js compiles full Scala to optimized JavaScript and is stable for 2+ years, with ecosystems like scalajs-react, scalatags, binding.scala, Udash and diode… | ||
| The Futures are Calling and I Must Choose | Chris Phelps | 39m |
Compares Scala Futures, Twitter Futures, Guava ListenableFutures, Java CompletableFutures and lazy Tasks (Scalaz/Monix/FS2) with concrete interoperability code… | ||
| Deus Ex Scala: Finding a Home for Scala in the Corporate Machine | Sten Anderson | 51m |
CME Group adopts Scala on the JVM to replace a greenfield service and ships a market state microservice built by five developers with heavy message passing… | ||
| Numbers every Scala programmer should know | Hunter Payne | 49m |
Argues that concrete, measured numbers drive optimization: uses JMH microbenchmarks on laptop and AWS to compare I/O, CPU and data-structure costs and shows… | ||
| Top Mistakes When Writing Reactive Applications | Petr Zapletal | 40m |
Covers concrete mistakes and fixes for Akka systems: Java serialization bloats footprints and caused a client to wait ~1 minute for persistent actors, so… | ||
| Bootstrapping Microservices using Akka, Kafka ans Spark | Alex Silva | 55m |
Bootstraps microservices by turning Kafka into the canonical event store and replayable source of truth, using Kafka as source of truth, Avro + Confluent… | ||
| Scary Build Tool? Automate more with sbt | Justin Kaeser | 30m |
Walks through building a real sbt plugin that creates GitHub repositories, showing the concrete code: an AutoPlugin with an AutoImport for a GitHub token… | ||
| Introduction to code generation with scalameta | Michael Pollmeier | 49m |
Live demo builds a macro that generates a companion with a working toMap/fromMap pair for any case class and the produced code compiles and runs in the… | ||
| The Last 10 Percent | Stefan Zeiger | 55m |
Converts a tiny Scala left‑pad library into a published package by wiring SBT to Sonatype/Maven Central and Bintray/JCenter, generating a PGP key on keyserver… | ||
| Stream Away with Scala | Shadaj Laddad | 49m |
Scala framework Potassium models sensors as signals and events, uses map/zip/scan/sliding to implement feed‑forward, P, integral, FIR and IIR filters, and… | ||
| Readers vs Constructors: Dependency Injection showdown | Adam Warski | 49m |
Argues that dependency injection is just passing parameters and demonstrates it by building an in-memory key‑value store (ConcurrentHashMap + Futures), a food… | ||
| Managing Consistency, State and Identity in Distributed Microservices | Duncan K. DeVore | 39m |
Argues that services must own their hot state and use event sourcing and an append-only event log to make identity composable, auditable and replayable rather… | ||
| Practical Eff monad for microservices | Eric torreborre | 49m |
An article microservice is built for merchant onboarding using component case classes for authentication, downstream clients and DB access, with dependency… | ||
| Fault tolerance in Distributed Systems: A Case Study in Apache Spark | Imran Rashid | 46m |
Apache Spark uses lineage-based recovery instead of replication, which keeps the fast common case but forces recomputation across multiple shuffle stages when… | ||
| Effective Scala development | Mikhail Mutcianko | 41m |
IntelliJ Scala plugin demos concrete features: second-time completion performs deep project analysis and auto-imports implicits, completion and smart… | ||
| Visualize your data structures | Nick Stanchenko | 46m |
Reftree is a Scala library that renders case classes and collections as SVG/PNG diagrams and can produce frame-by-frame animations by converting SVG paths into… | ||
| Dotty is coming | Dimitry Petrashko | 49m |
Dotty becomes the reference implementation for Scala 3 and aims to ship over the next 2–3 years while coexisting with Scala 2; migration guidance includes… | ||
| Elegant Scala builds and bootstrapping Dotty with CBT | Jan Christopher Vogt | 58m |
CBT is a small Scala-first build tool (core ~3,600 LOC, ~25 plugins) that runs sub-100ms by keeping a background process with classloader caching and per-task… | ||
| Herding types with Scala macros | Marina Sigaeva | 33m |
Macros generate compile‑time materialized wrappers that map Scala types to Aerospike's limited runtime types, replacing the Java client churn (about 7 key and… | ||
| Flare: Scale Up Spark with Native Compilation and Set Your Data on Fire | Tiark Rompf | 48m |
Flare compiles Catalyst query plans to native C and runs them with NUMA-aware scheduling and data layouts, turning Spark SQL jobs that took ~110 seconds on a 2… | ||
| Extending Spark Machine Learning Beyond Linear Regression | Holden Karau | 32m |
Shows how to add custom Transformer and Estimator stages to Spark ML pipelines in Scala (Python bindings not supported yet), with runnable examples: a simple… | ||
| Building Safe, More Testable Scala Production Systems | A. Phillips, V. Vijayaraghavan | 49m |
x.ai describes concrete fixes: a triple equals type-safe equality operator, type wrappers for IDs (value-class optimization), and a custom safe string/contains… | ||
| Simple code for a type safe world | Jan Christopher Vogt | 50m |
Claims that Typesafe Config and similar libraries are not truly type safe and shows a concrete alternative: replace runtime-config lookups with Scala case… | ||
| Disassembling and Decompiling Scala Code | Ryan Brown | 31m |
Disassembles .class files with javap and a JD decompiler and shows concrete surprises: Scala emits a big @ScalaSignature byte array, case classes create… | ||
| Doubt Truth to be a Liar: Non Trivialityy of Type Safety for Machine Learning | Matthew Tovbin | 52m |
Argues that getting compile-time type safety for feature vectors is hard and shows a concrete solution: Optimus Prime — a Scala library that layers typed… | ||
| Closing Panel | Seth Tisue, Stefan Zeiger, Dmitry Petrashko, Jon Pretty, Eugene Burmako, Adriaan Moors, Bill Venners | 33m |
Panel summarizes concrete work: the community build now compiles 104 projects (roughly millions of LOC) and catches regressions every release; collections are… | ||
| Easy Static Checking for Embedded DSLs in Scala with Contextual | Jon Pretty | 51m |
Library contextual produces compile-time checked interpolators for Scala by exposing literal parts to user code while handling the macro plumbing internally… | ||
| Closing Panel | Olafur Pall Geirsson, Kelley Robinson, Felix Mulder, Jon Pretty, Miles Sabin, Adriaan Moors | 56m |
Panel reports concrete progress: ScalaFix uses compiler symbols and types to do accurate, batch refactorings (unused imports removal, automated migration… | ||
| The best is yet to come - State of Akka in 2017 | Konrad 'ktoso' Malawski | 52m |
Overview of Akka 2.5 and near-future work with concrete outcomes and tools rather than promises: Akka already ships Akka Streams and Akka HTTP with HTTP/2… | ||
| Vert.x 3 goes Scala | Jochen Mader | 46m |
Vert.x adds a native Scala stack with Scala-native APIs for every module (HTTP, MQTT, gRPC, auth, DB clients) and a stable release targeted as 3.4.2; all cores… | ||
| Chatbots in Scala: meet your new robot overlords | Sam Reghenzi | 48m |
Demonstrates a working Scala chatbot that runs CI builds from chat, reduces email and speeds fixes, using an Akka/message-driven architecture and persisting… | ||
| Class up your config | Andy Scott | 38m |
Case Classy provides composable decoders (arrows typed A => Either[DecodeError,B]) that load TypeSafe Config, Java properties and Map[String,String] into Scala… | ||
| Finagle for Beginners | Nepomuk Seiler | 43m |
Builds a distributed temperature service: a sensor writes points to an in-memory server, clients call thrift RPCs (Scrooge-generated) and an HTTP API (Finch)… | ||
| The Essence of Testing | Bill Venners | 46m |
Nine years of ScalaTest work and a month with one million downloads drives a rethink: tests become single predicate-logic statements (PAQ) expressed with… | ||
| Reification and type-safety in a CQRS world | Renato Guerra Cavalcanti | 50m |
Built a small Scala CQRS library called fun-secure that compares three concrete ways to glue domain ADTs, Commands and Events: type-parameter plumbing… | ||
| Functional Programming Essentials | Kelley Robinson | 49m |
Covers FP origins from Lambda calculus, Lisp and Fortran and claims the real essentials are expressions and data structures rather than category-theory jargon… | ||
| Event Sourcing and CQRS | Lutz Huehnken | 52m |
Builds a football-league scoreboard by storing every game as an immutable event and using Lagom Persistence with Akka Persistence to emit and replay those… | ||
| DRY compiling! | Krzysztof Romanowski | 49m |
A tool called hoarder sbt plugin reuses classfiles plus Zinc analysis to avoid rebuilding from scratch, claiming a demo full build drop from ~3 minutes to ~4… | ||
| Easy and Efficient Data Validation with Cats | Daniela Sfregola | 40m |
Compares Option and Either failure modes and shows Cats’ ValidatedNel as the practical solution for form validation by accumulating errors instead of failing… | ||
| Building code analysis tools at Twitter | Eugene Burmako, Stu Hood | 57m |
Twitter builds a pipeline that extracts compiler facts into compact semanticdb files (names, denotations, compiler messages, inferred “sugars”), via a Scala… | ||
| Learn you Akka Streams for great Good! | Heiko Seeberger | 42m |
Live coding builds a pipeline that prints seven indented lines character‑by‑character using Source.repeat.take(7), zip‑with‑index, mapConcat to chars, and… | ||
| Compiling like a boss! | Mirco Dotta, Iulian Dragos | 43m |
Long Scala compiles often come from heavy implicit resolution and macro expansion; adding explicit types or moving implicits from package objects into… | ||
| Fast startup & low latency: pick two | Denys Shabalin | 35m |
Scala is compiled ahead-of-time to native code using LLVM as the backend, enabling no-JVM binaries and much smaller resident heaps. Early conservative GC… | ||
| Streams, effects and beautiful folds, a winning trilogy | Eric torreborre | 46m |
Builds a tiny streaming stack: a pure producer Done/One/Many that comes from iterator/unfold/repeat and supports map/flatMap, pairs it with origami folds are… | ||
| Problem Solving Recipes Learned from Supporting Spark | Stavros Kontopoulos, Justin Pihony | 40m |
Covers concrete fixes: JVM OOM occurs on driver vs executor memory regions with spark.memory.fraction 60% default and storage fraction protections; prefer… | ||
| Long-lived microservices | Jan Machacek | 44m |
Practical account of a long-lived microservices stack that actually ran in production: Scala services and some C++ components use Akka Persistence, Kafka… | ||
| Adventures in Metaprogramming: Macros versus Shapeless | Dave Gurnell | 43m |
Compares concrete implementations: a macro-based macros rewrite code as AST solution that uses Scala reflect to expand a 16–40 line macro, summons a type class… | ||
| Introduction to Spark Datasets | Holden Karau | 43m |
Datasets claim to combine relational and functional APIs and deliver measurable wins: benchmarks show Dataset/DataFrame runs far faster than RDDs and a sample… | ||
| Introduction to gRPC with ScalaPB | Petra Bierleutgeb | 44m |
Quick, hands-on guide to using ScalaPB with gRPC: shows the sbt plugin and protoc setup, how generated Scala sources map to proto packages, and add sbt plugin… | ||
| Akka support | Andrew Kozlov | 41m |
Live coding demo of IntelliJ IDEA’s Akka support shows concrete features: automatic variable-name suggestions from parameters, inspections that flag missing… | ||
| Quantifying and Explaining Immutability in Scala | Philipp Haller | 50m |
Empirical study analyzes medium-to-large Scala projects with a Scala 2.11 compiler plugin and outputs per-template immutability stats… | ||
| GraphQL - a type system for your API | Oleg Ilyenko | 48m |
GraphQL is a query language with an introspectable type system that returns exactly the fields requested, uses field arguments and aliases, and so avoids… | ||
| Bifurcation Without Schism: The Scala Ecosystem | Tomer Gabel | 51m |
Scala is split along two axes: functional vs OO and library-author vs blue‑collar developer, and that bifurcation produces concrete problems: six equivalent… | ||
| ADTs For The Win! | Noel Markham | 40m |
Covers concrete ADT code: shows Option and List from Scala 2.12 as sealed coproducts, models JSON as a sealed trait with specific case classes, and implements… | ||
| Using Scala.js and functional reactive programming for developing (enterprise) applications | Ingo Maier, Martin Odersky | 44m |
SAP builds a Scala-based cloud app stack that compiles server Scala and front-end Scala.js code, generates UI bindings against SAP UI5, and pulls labels and… | ||
| Existential Types — Make OOP Great Again! | Julien Richard-Foy | 38m |
Existential types are encoded as abstract type members so a Unix-style API can hide raw ints for file descriptors and force creation via open, eliminating… | ||
| Monix Task: Lazy, Async and Awesome | Alexandru Nedelcu | 42m |
Monix Task presents a lazy alternative to Scala Future that runs on JVM and Scala.js, ships as Monix 2.3, and interops with Cats. It models a Task as a thunk… | ||
| Reconstructing Scala | Felix Mulder | 41m |
Dotty is a near-beta Scala compiler that aims for a provable core and practical ergonomics: it proves parts of the type system while adding usability like… | ||
| Scala Meta Live Coding Session | Pathikrit Bhowmick | 52m |
Live codes an annotation macro that reads constructor params and their @get/@post/@patch markers and generates companion case classes for REST models, using… | ||
| Taming Distribution: Formal Protocols for Akka Typed | Roland Kuhn | 45m |
Proposes using Akka Typed plus parameterized ActorRefs and effect-tracking HList-like types so the compiler enforces the ordering of distributed message… | ||
| Uniting Church and State: FP and OO Together | Noel Welsh | 38m |
Describes using Church encoding (refunctionalisation) to turn an algebraic-data FP stream into an object-style receiver-based stream so a multi-TB time-series… | ||
| When all abstraction is lost | Daniel Jentsch | 42m |
A ScalaTest extension provides a DSL for behaviors and drives an explicit state model checking engine that schedules every interleaving via a special… | ||
| Hands-on Scala-Native | Guillaume Massé, Martin Duhem | 36m |
Scala Native compiles Scala to native binaries via ScalaC → LLVM and claims fast startup, C interoperability and garbage collection; setup is an sbt plugin… | ||
| Impact on business and society | Sarah Aerni | 49m |
Salesforce builds a multi-tenant ML platform called Optimus Prime on Scala and Spark that automatically ingests Service Cloud data, applies automated feature… | ||
| Real World Android Akka | Taisuke Oe | 34m |
A production Android VoIP client for outdoor sports is built: a BONX app that runs continuously up to 7 hours using a custom Bluetooth headset and server-side… | ||
| sbt: Beyond the Build Tool | Jeff Olchovy | 48m |
Tapjoy runs sbt across 60 repositories, authors 13 internal sbt plugins and open sources 5, and uses sbt tasks to do more than build: push-button release… | ||
| Scala 2.12 and the road towards 3.0 | Adriaan Moors | 45m |
Scala 2.12 is Java 8 only and compiles traits directly to interfaces, using invokeDynamic for lambdas and a rewritten ASM backend, which cuts example jars from… | ||
| Akka streams for high throughput data processing | Zack Loebel-Begelman | 41m |
Credit Karma moves ~60M users worth of data and an actor-based pipeline hits limits when stages have different speeds, so the actor import and analytics… | ||
| Doodle: Visualisation in Scala | Noel Welsh | 28m |
A Scala 2D visualisation library that renders on the desktop via Java2D, to files (PDF, PNG, GIF) and to the browser using Scala.js to SVG, with a layered… | ||
| Building a Company on Scala | Dag Liodden | 42m |
Company chooses Scala in 2010 and grows to ~200 people, running 20+ PB of data and selling for $360 million, claiming Scala provides the technical foundation… | ||
| Building high available systems with Akka Distributed Data | Jeroen Gordijn | 46m |
Overview of building highly available systems using Akka Distributed Data: explains how state-based CRDTs (including ORSet and PN-counters) gossip full state… | ||
| 8 Akka anti-patterns you'd better be aware of | Manuel Bernhardt | 47m |
Eight concrete Akka mistakes and how they break systems: leaking mutable state (use immutable messages and query/answer patterns), flat actor hierarchies… | ||
| Monad transformers down to earth | Gabriele Petronella | 47m |
Explains why monads don’t compose generically and shows the practical trick of wrapping F[G[A]] to get a usable monad instance, then replaces that boilerplate… | ||
| ScalaQuest: the Scala adventure | Alejandro Lujan Toro | 27m |
ScalaQuest is a web game that teaches Scala through tiny client-side microchallenges and larger server‑evaluated exercises; the frontend uses Phaser.js while… | ||
| nothing matches | ||