Scala eXchange 2014, December 8th-9th
The whole Scala picture
If you're interested in learning the latest developments in the Typesafe stack, you're catered for, with numerous talks on Akka, Spray and Play. But the Scala eXchange will also showcase lesser known libraries and projects from around the globe.
With over 50 speakers and four tracks you'll find a talk or panel discussion around every corner. So whether you're interested in the Typelevel, want to figure out how to move your team from Java<>Scala, or hear how Netflix is using Scala - there's something for you.
Brilliant minds on stage
Expect to bump into some of the world's most recognised Scala experts in the world. Did we mention we've got Martin Odersky? Probably. Alongside Martin, our other keynote speakers are Dean Wampler, Lars Hupel, Rúnar Bjarnason. Head to the programme tab for the full list.
Keep up with the latest on Twitter
Follow us @scalaexchange for speaker updates and general Scala musing. Make the conference yours!
Excited? Share it!
Day 1: Scala eXchange
Pick your sessions!
Track | Auditorium | Room 1 | Room 2 | Room 3 | ||||||||||||
08:00
Invalid Time
Invalid Time
|
Registration |
|||||||||||||||
09:00
Invalid Time
Invalid Time
|
KEYNOTE
In this talk I will explain what binary compatibility means in the Scala context and why it poses such a problem. I will then put forward a possible solution that relies on a new high-level interchange format of typed trees.
scala
functional-programming
binary-compatibility
types
About the speaker...Martin OderskyMore generally, Martin is interested in programming languages and methods, in particular how object-oriented and functional programming can be made to work seamlessly together. He believes is that the two paradigms are two sides of the same coin and should be unified as much as possible. He was named an ACM fellow for his achievements in this area. |
|||||||||||||||
10:00
Invalid Time
Invalid Time
|
Akka-http delivers an excellent tool for connecting your Scala/Akka applications to the world. In this session we'll look into what akka-http brings to the table, how it is used and what improvements it delivers over previous solutions. You’ll learn about best practices, what applications will benefit most from, its features as well as the general roadmap for akka-http going forward. |
In this talk, Alex will draw on his experiences at Snowplow to explore how to build rock-sold data pipelines in Scala, highlighting a range of techniques including:
Alex's talk will draw on his experiences working with event streams in Scala over the last two and a half years at Snowplow, and by Alex's recent work penning Unified Log Processing, a Manning book.
scala
functional-programming
About the speaker...Alex DeanI love giving technical talks! I've spoken this year at Big Data Budapest, the London Scala User's Group (https://skillsmatter.com/meetups/6206-building-data-processing-applications-in-scala-the-snowplow-experience), Big Data Tel Aviv, Data Warehouse Forum Budapest; I'm speaking at Big Data Beers in Berlin later this month. |
"In this talk Noel will discuss six fundamental concepts that underly effective Scala. How can programmers quickly and effectively learn to write idiomatic Scala? This is a question Noel at Underscore had to answer when developing their own training material. They knew we wanted to go beyond teaching syntax and give developers the concepts and techniques they needed to develop Scala in a systematic and idiomatic way. They identified six core concepts that cover a wide range of Scala programs. These concepts give programmers a reproducible way to create code -- once the problem domain is understood the code follows through a series of systematic and reproducible steps. The resulting code is robust and easily maintained. In this talk Noel will describe these six concepts, which are:
Noel will show how they let us create code in a systematic manner, and how we can go about teaching the concepts to new Scala developers. This talk should be of interest to anyone who is transitioning to, or leading a team that is transitioning to, Scala, and anyone interested in guidelines for idiomatic Scala code. " |
The talk will focus on practical examples inspired by the lessons of building secure systems for the Guardian. We'll see how an example API implemented naïvely using traditional techniques can be improved when we embrace the type system and change the way we think about APIs.
scala
api
types
About the speaker...Adam FisherHe has worked on the APIs and backend systems powering the Guardian's sign-in services, apps and website. |
||||||||||||
11:00
Invalid Time
Invalid Time
|
We've had plenty of cool demos: type-safe Ajax calls, in-browser ray-tracing, games and reactive web-pages, but these demos were not constructed on their own! They are the head of a long chain of dependencies, more and more fundamental, until we answer the question: how do we build something from nothing?
scala
javascript
scalajs
About the speaker...Haoyi LiHaoyi graduated from MIT with a degree in Computer Science and Engineering, and since then has been a major contributor to the Scala community. His open source projects have over 10,000 stars on Github, and are downloaded over 7,000,000 times a month. Haoyi has used Scala professionally to build distributed backend systems, programming languages, high-performance web applications, and much more. |
The second part of my session will focus on IntelliJ IDEA and how to leverage your IDE for working with implicits. Among other helpful IDE features, I will show how to debug implicits in IntelliJ IDEA. As examples we’ll take a look at a few Scala libraries, including Spray with its well-known Magnet pattern. On top of that, during my talk I’ll show you a few new tips and tricks on how to be more efficient by using IntelliJ IDEA’s hidden gems when working with Scala. "
scala
implicit
spray
About the speaker...Alexander PodkhalyuzinIn 2012 started teaching Scala in Saint-Petersburg Academic University. |
In this talk we'll demo the new driver and look at the patterns used to create it. You'll be amazed at how simple it is to write a whole new driver for your favourite asynchronous library! We'll look at some of the challenges in making this so and of making a typesafe Document class. You'll see that through the use of implicits we can allow simple interoperability between native scala types and MongoDB Documents. |
This talk aims to show what value you can get from using Scalaz in your projects, and help you comprehend some of the unusual terminology used. |
||||||||||||
12:00
Invalid Time
Invalid Time
|
We will explore demonstrate real world use cases which make Scala stand out as a choice programming language for for building clean, beautiful, RESTful APIs with tools such as Swagger+Scalatra. Techniques will be demonstrated for producing & consuming JSON (json4s), as well as sending HTTP Requests (Dispatch), using MySQL & Cassandra, and Caching. We will also explore Scala testing frameworks, and how they plug into our larger CI/CD infrastructure, with additional discussions of Netflix OSS components.
scala
About the speaker...Brendan McAdamsWith over 15 years of software development experience, Brendan boasts an impressive resume that has seen him work at Netflix, Typesafe, and MongoDB. Brendan is a renowned speaker and luminary in the Scala community, and is a regular presenter at industry leading conferences such as Scala Days and Scala eXchange. His deep technical knowledge coupled with his outgoing and approachable personality not only make him a great speaker, but also a phenomenal trainer on the Typesafe Reactive Platform. |
Two case studies of commercial development projects illustrate using Play and Scala to complete development so easily it feels like cheating. Both projects were based on Play, Scala, Slick, Bootstrap and minimal JavaScript or front-end development. The lessons learned from these projects show how this architecture makes trade-offs between development cost and complexity. Best of all, there wasn’t any PHP at all. |
We’ll then see how to declaratively implement an interceptor, and that it’s far easier than it may seem. Finally, we'll take a look at the “Thin Cake Pattern”, and how to use traits to create and compose module.
scala
dependency-injection
About the speaker...Adam WarskiApart from writing closed- and open-source software, Adam is interested in improving the way we use functional and object-oriented programming. He is also writing a technical blog on a variety of interesting IT-related subjects. You can follow Adam on Twitter here, or take a look at SoftwareMill. |
In this talk Maciek will aim to present the basics of lambda calculus: its syntax, reduction rules and properties, and how the calculus can be used to model programs that we write in higher-level languages. If time permits Maciek will briefly mention a couple of more advanced topics such as Curry-Howard correspondence, combinatory logic and advanced type system features. The talk falls primarily into the ""Functional programming theory/practice"" category. It will have very few references to Scala -- mostly illustrating how certain features of Scala have their roots in lambda calculus. |
||||||||||||
13:00
Invalid Time
Invalid Time
|
Lunch |
|||||||||||||||
14:00
Invalid Time
Invalid Time
|
KEYNOTE
We offer solutions for a wide range of problems, ranging from functional data structures, testing and JSON processing to efficient numeric programming, stream processing and generic programming. This talk will give a whirlwind tour of the ideas and projects behind typelevel, and how they can be used to improve your code base. We'll see some short examples of how to solve problems in a functional manner, and demonstrate some of the tooling around the libraries. Also, a critical review of the progress and an outline of the future plans of the projects will be made.
scala
functional-programming
types
About the speaker...Lars HupelLars Hupel is a consultant in Munich, Germany. They are known as one of the founders of the Typelevel initiative which is dedicated to providing principled, type-driven Scala libraries in a friendly, welcoming environment. A frequent conference speaker, they are active in the open source community, particularly in Scala. They also enjoy programming in and talking about Haskell, TypeScript, Prolog, and Rust. Previously, they were a PhD student at TU München in the field of logic and verification. |
|||||||||||||||
15:00
Invalid Time
Invalid Time
|
Jan will show code examples in Scala and Akka only to demonstrate the key principles. Alongside the code, Jan will explore the required shift in thinking that is required to grasp the challenges of distributed reactive systems.
akka
scala
distributed
About the speaker...Jan MachacekHe shares his expertise and passion for software as the editor of the Open Source Journal, regularly contributes to open source projects and speaks at conferences in the UK and abroad. Jan is the author of many open source projects (various Typesafe Activators, Reactive Monitor, Akka Patterns, Akka Extras, Scalad, Specs2 Spring and others), books and articles. Jan always wants to hear about interesting projects, events, hackathons, ...! He's keen to share his expertise at conferences, user groups, or simply over a drink or two. If you have something to suggest or share, get in touch! Find him on Twitter. |
David Pollak, Lift's founder, will walk through the strengths and weakness of Lift... the good decisions and the bad...And talk about how Lift will continue to grow to be a decade-old open source project.
scala
lift
About the speaker...David PollakDavid has written a popular framework in Scala (Lift) and a book about Scala (Beginning Scala). He's been doing Scala since 2006, and more recently has picked up Clojure. David has also started work on his Plugh framework and founded Visi.Pro, Cloud Computing for the Rest of Us along with the Visi Language open source project. |
Here at EatingWell, we have learned quite a bit about Slick over the past two years as we transitioned from a PHP website to Scala. I will share with you tips and tricks we have learned, as well as everything you need to get started using Slick in your Scala application. I will begin with Slick fundamentals: how to get started making your connection, the types of databases it can access, how to actually create table objects and make queries to and from them. We will using these fundamentals to demonstrate the powerful features inherited from the Scala language itself: static-checking, compile-time safety, and compositionality. And throughout I will share plenty of tips that will help you in everything from getting started to connection pooling options and configuration for use at scale.
scala
About the speaker...Rebecca GrenierA Vermont native, Becky was introduced to programming at the age of 12 when she and her twin sister taught themselves how to create infinite loops in GW BASIC for the sole purpose of insulting each other thousands of times over. Her team of all women developers, Becky and the Hackettes, won 2nd place at the Vermont Hackathon last year (http://hackvt.com/results/). |
We will discuss some of the main abstractions in the Scalaz library, but instead of explaining the details of what they are, we will focus on when and how we can use them to write code with less boilerplate. We will attempt to build an intuition and motivation for the abstractions and their use, leaving precise definitions and further details to the excellent material available elsewhere. The talk will cover monoids, monads, and applicative functors. Slides available at http://bit.ly/mkhl-scalax-2014
scala
abstraction
scalaz
About the speaker...Martin KühlMartin holds a Diplom in Informatik from the University of Bremen and lives in Leipzig with his family. |
||||||||||||
16:00
Invalid Time
Invalid Time
|
Slick 2.2 adds async support, automatically manages session and transaction lifetime for less boiler plate and less bugs and supports Option for structured data. |
One of the things that makes Minecraft so big is the modding scene. Minecraft mods are traditionally created using Java. We have been running workshops using the combination Java and Minecraft with great success. But using Java in this scenario is not really ideal: there is lots of boiler-plate code that have to be simply ignored by beginners. If such boiler plate code can be ignored, why is it even there? |
Then we will explore how to solve the common problem of custom data serialisation. Initially we will present some commonly adopted approaches including the Adapter Pattern, showing their pitfalls. Then, we will show how type-classes simplify the design and result in better extensibility and and API usability. Finally we will discover how users don’t need to understand type-classes to make use of these libraries.
scala
types
typeclass
About the speaker...Julien SirocchiHe finds himself constantly striving for better abstractions, sometimes succeeding, sometimes not. |
|||||||||||||
17:00
Invalid Time
Invalid Time
|
This talk is suitable for Scala beginners but (I hope) will be of use to more experienced Scala developers as well, even if only as a gentle reminder about some of the tricks used, or perhaps in the effective combinations of some of them that have proven useful over time. |
In this talk, aimed at beginner-to-intermediate Scala developers, Dave will build a simple, powerful, composable data validation library from the ground up, explaining at each stage the design choices made and the benefits gained from the Scala programming language. The talk will cover such topics as:
scala
functional-programming
data-validation
About the speaker...Dave GurnellIn his spare time he enjoys making maps, playing with cats, and taking short trips in his space ship. |
This session will start with an introduction to the Spray/Akka-http routing DSL, making sure to go beyond the basics. It will also show examples of real-world application code to give you a feeling for what the end result looks like. The session will conclude with a discussion of some things to watch out for on your way to becoming an expert user. Overview: -The routing DSL Detailed Contents: -The routing DSL Real world examples -A simple OAuth2 server Things to watch out for |
Through some live-coding using Parboiled2 (https://github.com/sirthias/parboiled2), Phil will show that writing simple parsers in Scala is easy and demonstrate that parsers are more readable, more composable and provide more useful information when things go wrong than regular expressions. |
||||||||||||
18:00
Invalid Time
Invalid Time
|
KEYNOTE
This will be followed by the traditional park bench discussion on all thins Scala, hosted kindly by Kingsley Davies. If you have a question you want to ask - use the #scalaxqa or email scalax@skillsmatter.com. This session finishes at 7PM. Drinks will be hosted around the corner. You'll be directed!
scala
About the speakers...Martin OderskyMore generally, Martin is interested in programming languages and methods, in particular how object-oriented and functional programming can be made to work seamlessly together. He believes is that the two paradigms are two sides of the same coin and should be unified as much as possible. He was named an ACM fellow for his achievements in this area. Miles SabinMiles has been doing stuff with Scala for more than ten years, currently with Underscore Consulting. He is a cofounder of Typelevel and his best known project, the Scala generic programming library shapeless, is the weapon of choice wherever boilerplate needs to be scrapped or arities abstracted over. Head over to Miles' blog, check out his projects on GitHub and follow him on Twitter @milessabin. Lars HupelLars Hupel is a consultant in Munich, Germany. They are known as one of the founders of the Typelevel initiative which is dedicated to providing principled, type-driven Scala libraries in a friendly, welcoming environment. A frequent conference speaker, they are active in the open source community, particularly in Scala. They also enjoy programming in and talking about Haskell, TypeScript, Prolog, and Rust. Previously, they were a PhD student at TU München in the field of logic and verification. Kingsley DaviesWhile working to make things better, he’s seen a steady evolution towards functional programming, a sharper focus on development operation teams and tools and decomposing big things into smaller composable things commonly called services. Most recently he's also dived into the ethical tech and tech for good pools and is keen to encourage and support initiatives in these areas. |
|||||||||||||||
19:00
Invalid Time
Invalid Time
|
Drinks Reception from 19.00 - Details on the programme |
Day 2: Scala eXchange
Pick your sessions!
Track | Auditorium | Room 1 | Room 2 | Room 3 | ||||||||||||
08:00
Invalid Time
Invalid Time
|
Registration |
|||||||||||||||
09:00
Invalid Time
Invalid Time
|
KEYNOTE
Users of Big (and not so Big) Data roughly divide into three groups, developers like us, traditional data analysts, and a hybrid called data scientists. The analysts prefer SQL, SAS, and similar, traditional tools. The scientists (mostly statisticians, really) prefer Python and R, with Julia emerging. The Developers started with Java, but they are being seduced by Scala, because it offers ideal tools for data-centric applications. This talk explains why data-centric applications are driving Scala adoption. Scala already provides these essential features:
These features combine to yield powerful, scalable tools with concise APIs:
Finally, we'll discuss what's missing and what's ahead.
scala
big-data
functional-programming
jvm
About the speaker...Dean WamplerDean leads the engineering team for the Accelerated Discovery Platform in IBM Research. He is an expert in data systems, Scala, and software engineering practices. Previously he worked for Domino Data Lab, Anyscale, and Lightbend. Follow Dean on Twitter @deanwampler and LinkedIn at /deanwampler. |
|||||||||||||||
10:00
Invalid Time
Invalid Time
|
Abide integrates with Sbt, IDEs (via compiler plugins) and soon with Maven. Users can add project-specific rules, and additional rule libraries can be imported from any ivy or maven repository. Rules have access to the fully type-checked tree and may use quasiquotes for easy AST pattern matching. |
But not everything is rosy. Case classes come with restrictions, some of which are essential, some not. And they have some characteristics, again some essential, some not, which are not always entirely appropriate or desirable. This has led to the often expressed desire to be able to pick and choose or otherwise customize case class features: case classes a la carte. Unfortunately this has seemed to require changes to the Scala compiler which for various reasons have been perceived to be too difficult or too risky to attempt. The arrival of macros, macro annotations in particular, briefly raised the prospect that case classes a la carte might again be on the table. But macro annotations are not yet available in a production ready Scala compiler and might never be. But all is not lost. Generating the scaffolding for case classes is a generic programming problem, and the fact that one solution to that problem is hard coded into scalac doesn't preclude other approaches from being applied. To that end I will demonstrate one way of tackling this problem using the generic programming library shapeless, and show some of the exciting new possibilities this opens up ... crucially in the context of current (ie. 2.10.x and 2.11.x) Scala compilers. https://github.com/milessabin/shapeless
scala
shapeless
About the speaker...Miles SabinMiles has been doing stuff with Scala for more than ten years, currently with Underscore Consulting. He is a cofounder of Typelevel and his best known project, the Scala generic programming library shapeless, is the weapon of choice wherever boilerplate needs to be scrapped or arities abstracted over. Head over to Miles' blog, check out his projects on GitHub and follow him on Twitter @milessabin. |
Its design leads to a number of interesting opportunities. This talk gives an overview of Ensimes current state, the future plans and shows some interesting things you can do when you have your IDE as a queryable process. |
The budding DSL designer, however, will quickly realize that there are precious few resources on how to best approach the problem in Scala; the various techniques, limitations and workarounds are not generally well understood or documented, and every developer ends up running into the same challenges and dead-ends. In this talk I'll attempt to summarize what I've learned from reading, extending and designing Scala DSLs in the hopes that it'll save future Scala library designers a whole lot of pain. |
||||||||||||
11:00
Invalid Time
Invalid Time
|
|
As Scala gains increasing traction in OO developer communities, more and more Java developers are in the progress of making the move from being Imperative-comfortable to FP-fluent. Many are lured by the terser syntax, others by the promise of powerful high-level constructs, and more still by the thrill of challenging themselves and learning something almost entirely new to them. The problem however, is that for many their initial enthusiasm soon wears off and the realization of how much a mind-shift this really is sinks in. In this session I will discuss in detail the key steps along a path which via much trial-and-error has proved for me to be effective in undertaking this transition. We'll begin at the base-camp of understanding (Java-concepts to let go of, the initially-unfamiliar syntax, the equally-unfamiliar maths idiom) and from there up into the lower foothills (the basics of the type system, infix notation, ""everything is an expression"" and referential transparency) before progressing on to the lower peaks of the language (Pattern-matching with case classes and partial functions) and ending at one significant Monadic taster (Option, map/flatMap and the for-comprehension). For maximum benefit I'll also point out the pain points I encountered, techniques and resources I used to overcome these, and we'll end by mentioning next steps and further inroads into the language.
scala
java
About the speaker...Andrew Harmel-LawAndrew also loves learning new things, and is always seeking out people from whom he can learn new skills and gain different perspectives. Having originally studied Neural Networks the second time they were cool (in the 1990s) he's also currently using his spare time struggling to catch up on all the fuss around Deep Learning. |
The Algebra of Communicating Processes (ACP) has a potential to improve this: it lets one concisely specify event handling and concurrency, and it facilitates reasoning about parallel systems. There is an ACP-based extension to Scala named SubScript. We show how it helps describing the internal behavior of Akka actors, and how it combines with futures. For more information see www.subscript-lang.org
scala
reactive-programming
About the speaker...André Van DelftHis Scala extension SubScript aims to simplify reactive programming. Earlier he extended Java with support for physical dimensions and units of measurement. André also created C0H, a C extension with the smallest Hello World possible, and C1R, a language that beats all C solutions on RosettaCode.org. |
|||||||||||||
12:00
Invalid Time
Invalid Time
|
Through a live coding session, we'll show you what programming with Scala.js means today: a simple and fast development cycle with the sbt plugin, a rock solid compiler and optimizer, amazing (cross-compiling) libraries for reactive UIs and easy client-server communications, and more!
scala
functional-programming
javascript
scala.js
About the speaker...Sébastien DoeraeneSébastien Doeraene is a compiler/runtime systems hacker and a Scala enthusiast. Best known as the author of Scala.js, he is now an engineer at the Scala Center. He holds a PhD from EPFL, having worked under the supervision of Prof. Martin Odersky, and a master’s degree in computer science engineering from Université catholique de Louvain in Belgium. When he is not busy coding, he sings in choirs and a cappella groups such as the Ensemble Vocal Évohé, or composes for and conducts said choirs. |
Historically BBC projects are generally a combination of centrally managed PHP front end and Java Web Service backend systems. This talk will discuss how our previous technology stack was not fit for the future and how Scala and Play offered a solution for that future. Sometimes we need to reinvent the wheel. By getting management behind us, running successful recruitment campaigns and various staff training techniques this talk will discuss how the responsive future of the BBC Children’s websites are taking shape and built around a centre of excellence for Scala in the north. This talk should be of interest to anyone looking to facilitate change within their organisation. This talk should be of particular interest to anyone who is part of, or leading a team that is transitioning to Scala. Site Links:
scala
play
About the speaker...Gary HighamGary has been at the BBC for over 3 years and has previously been technical lead on the BBC iPlayer for TV. Gary has worked on numerous high profile high traffic sites including the BBC Olympic offering. In his spare time Gary can be found either playing rugby or working on re-writing his game engine in another new language. |
Whisk is a shopping list app that connects online recipes to online and offline supermarkets. Their users build their shopping lists from online recipes using embedded widgets, browser extensions, our webapp, and our mobile apps. Their lists must stay in sync, or they won’t eat. To complicate matters, users carry their lists with them to supermarkets - the best naturally-occurring examples of Faraday cages. Whisk's apps must work seamlessly with very patchy networks, but also in fully offline mode. To achieve this, their apps use local storage, and sync mechanisms use CRDTs. Whisk have implemented two specific CRDTs to support shopping lists at Whisk, provided to their clients through an API built with Scala and underpinned by Cassandra. David will describe their approach and architecture, and discuss some practical measures they've taken to address the problem of an ever-growing operations log. This talk should appeal to anyone interested in cross-device data synchronisation, and practical applications of Scala.
scala
crdt
types
About the speaker...David BrooksDavid has been programming for fun, research, and profit since the nineties. The best of those years have been spent in the functional world, first with Scheme, and latterly with Scala. His first true love was Prolog. He has worked on systems for natural language processing and machine learning, and some more traditional web-applications (and the frameworks that underpin them). He now works in the engine room at Whisk, tinkering with distributed systems, semantic data, and natural language processing. David lives in Birmingham, but occasionally makes a break for it. He holds a PhD in Computer Science from Birmingham University. |
Netlib-java is for accessing hardware optimised linear algebra libraries (i.e. high performance mathematics). It is being used in investment banks, aerospace companies and has recently been adopted by the Apache Spark ecosystem: https://github.com/fommil/netlib-java In netlib-java, implementations of BLAS/LAPACK/ARPACK are provided by:
In this talk, Sam will be explaining why high performance linear algebra requires hardware support and show how to utilise netlib-java in Scala (e.g. via Breeze). Sam will also discuss why GPUs are the future for linear algebra, and the technical challenges that remain. |
||||||||||||
13:00
Invalid Time
Invalid Time
|
Lunch |
|||||||||||||||
14:00
Invalid Time
Invalid Time
|
KEYNOTE
scalax
scala
functional-programming
About the speaker...Rúnar BjarnasonRúnar is a cofounder of Unison Computing, which is creating the Unison programming language. Rúnar has been doing purely functional programming in Haskell and Scala since 2005, and has authored books on Functional Programming in Scala and Kotlin. Follow Rúnar on Twitter here. |
|||||||||||||||
15:00
Invalid Time
Invalid Time
|
The challenge in that scenario is to test all the containers in collaboration and do so in a nightly build without any human interaction. The presentation details how we have overcome the challenges
The combination of the technologies mentioned above allow us to execute the entire integration test suite over night against the latest, automatically generated docker images. All framework source is available on Github.
scala
akka
docker
integration-testing
About the speaker...Andreas GiesThe core framework to use Akka within OSGi is published at https://github.com/woq-blended/blended. When he is not travelling for projects or talks, Andreas lives in Andalusia enjoying Software engineering and the Spanish sun. |
In order to avoid duplication of code and to give us maximum flexibility we have developed banana-rdf [3] - a scala RDF library that allows us to elegantly write code that can be used both on the web client using scala-js and on the server, whilst allowing us to change implementation with one line of code. On the client we gain maximum speed with a scala-js wrapping of the Facebook React framework, allowing us to write clean functional code. This project is open source with more details on the wiki https://github.com/read-write-web/wiki/wiki OuiShare Workshop For those interested in digging deeper a hands on session will be organised in cooperation with OuiShare labs on Wednesday 10th December in London. Full details on the workshop and how to register can be found here. [0] http://json-ld.org/ 1 http://www.w3.org/TR/ldp/ [2] http://webid.info/spec/ [3] https://github.com/w3c/banana-rdf
scala
distributed
scalajs
javascript
About the speaker...Henry StorySince the take over by Oracle Henry has been contributing to the W3C as an Apache member on the WebID protocol, the Linked Data Protocol, and is now a member of the Social Web Working Group. Henry has been developing full time in Scala since mid 2011. |
In simple words, this project will let scala programmers use values at type-level, allowing a lot of compelling use-cases. The talk will show where and how literal-based singleton types can be (and in some cases already are) useful. |
|||||||||||||
16:00
Invalid Time
Invalid Time
|
Other issues only get visibility when you get down to the implementation details. To name a few: service discoverability, integrating new components to existing code, allowing multiple codebases (in different languages) to interact transparently, or incorporating legacy code into the new architecture. In Gumtree we have been evaluating possible solutions to these challenges. For example, using specific Kafka feeds as a solution for discoverability issues and to facilitate integration of components built using different languages. We are in the process of implement one of the proposals as a trial and we want to share our ideas and the issues found during implementation. Disclaimer: The title comes from a tweet by ‘The Legend of Klang’ himself: https://twitter.com/viktorklang/status/481109888656244736 " |
The examples are from commercial code reviews across a wide range of developers and projects. We've seen what developers are struggling with, and how teams are shipping code while getting to grips with Scala. We will look at examples including:
Behind each piece of code there's a reason why the code ended up that way. Richard will provide suggestions from the Scala ecosystem that would give a better result.
scala
About the speaker...Richard DallawayRichard Dallaway is an active member of the Scala User Group and regularly blogs about Scala and Lift on his blog. |
But what if there is true value in the world of scalaz? What if it is possible to use these tools for good (and a little bit of evil – it's fun to use learning for evil!) and profit... Without getting hopelessly lost in the opium dens of FP? In this talk we will look at some of the "gateway drugs" of scalaz: Validation, NonEmptyList, \/, Monad Transformers, and more. How do they work from a practical standpoint? What is their value for real world applications? Can we use them without an advanced Maths PhD? And just how fun is it to really code with these tools?
scala
scalaz
functional-programming
About the speaker...Brendan McAdamsWith over 15 years of software development experience, Brendan boasts an impressive resume that has seen him work at Netflix, Typesafe, and MongoDB. Brendan is a renowned speaker and luminary in the Scala community, and is a regular presenter at industry leading conferences such as Scala Days and Scala eXchange. His deep technical knowledge coupled with his outgoing and approachable personality not only make him a great speaker, but also a phenomenal trainer on the Typesafe Reactive Platform. |
How the data is structured. Coding up the algorithm and comparing different implementations, both functional and imperative. Automated tests. Rendering the difference results. Build tools and jar publishing.
scala
scala-libraries
About the speaker...Sue CarterSue currently manages a team of Scala developers, writing pricing and risk systems for commodity trading. She makes sure she finds time to write code, both at work and on home projects. Check out her Github page. |
||||||||||||
17:00
Invalid Time
Invalid Time
|
Map data structures are often used quite liberally to associate data to entities, such as users, sessions or transactions. Those are typically identified by a numeric key. This works well for optional data, but often we'd like to guarantee that data is present for every entity. We show how identifier types can evolve to track dynamic sets of entities. We use these types as keys to build total maps. Since lookups in total maps are always successful, we can eliminate important error-handling code paths and increase application reliability. We walk through the conversion of an application from maps to total maps and discuss benefits, challenges and alternatives.
scala
functional-programming
data-structures
About the speaker...Patrick PremontHe previous led the development of a proprietary game engine. More recently he has made open source contributions aimed at advancing the practice of functional persistence. |
Fortunately, tests can be kept clear and easy to maintain through the use of a declarative message representation. A declarative representation describes message structure and content (the "what"), while hiding the actual message construction (the "how"). In this talk, I will demonstrate one approach to defining a declarative representation of FIX messages for testing a trading application.
scala
distributed
testing
About the speaker...Patrick TschornFour years ago he decided to never write another Java program and was delighted to discover Scala. |
Herein lies the problem: how can you focus more on the good stuff? We will present some tools written in Scala that help you get dull tasks out of the way quicker. We use this arsenal to support live production systems, to manage byzantine release bureaucracy, and to test inter-process workflows. To keep things interesting and concise, we’ll present this as a series of very short talks, with a break for questions after each one. We hope you will begin to see a common ethos linking the talks, as well as seeing some useful tools, written in Scala, aimed at Scala developers.
scala
banking
microservices
acceptance-testing
akka
About the speakers...Franck RasoloAs a proponent of Agile and Lean methods of regularly delivering working software, he has helped several teams to adapt their processes with excellent results. He also participates in a number of open source projects. |
-
5
Scala eXchange - Q&A Panel
Featuring Martin Odersky, Miles Sabin, Lars Hupel, 999 444 and Kingsley Davies
This year's panal begins with a Q&A session on 'Typelevel and what it means for the Scala ecosystem'. On the panel will be Martin Odersky, Miles Sabin, Lars Hupel and Jon Pretty.
scala -
The Binary Compatibility Challenge
Featuring Martin Odersky
Binary compatibility has been a persistent challenge for the Scala community. This not because we do not take it seriously - in fact the opposite is true. Over the years, the Scala community has developed sophisticated tools and rigid processes to deal with binary compatibility. Yet the problem...
scala functional-programming binary-compatibility types -
Having your cake and eating it!
Featuring Ross Lawley
There is a new MongoDB driver in town that aims to take its place in the modern world of Scala. Casbah has long been a steward for MongoDB, but for sometime its synchronous ways has shown it's age. So a new asynchronous, reactive and highly extendable driver has been written from scratch.
scala scalax -
Concrete Abstraction with Scalaz
Featuring Martin Kühl
How can abstractions like monads or functors help the working programmer? While most developers are aware of the abstractions, libraries implementing them are perceived as too academic, and so usage in the industry remains rare. In this talk we will develop an intuition for when some common...
scala abstraction scalaz -
Building a Secure Distributed Social Web using Scala & Scala-JS
Featuring Henry Story
We will show how to build a full Scala client and server application by illustrating it with a use case pushing the limits of what can be done: a distributed secure Social Web server.
We do this by using emerging W3C standards: using JSON-LD for distributed data [0] , the Linked Data Protocol...
scala distributed scalajs javascript -
Effective API design with Scala types
Featuring Adam Fisher
The type system is a fundamental tool for programming in Scala, but while we're used to thinking about functions and methods within an application it's rare for us to consider the types outside our programs. This talk will demonstrate how choosing a consistent and appropriate type to...
scala api types -
Scalaz, or: how I learned to stop worrying and love monads
Featuring Noel Markham
The strange syntax and unfamiliar language used in Scalaz can often be a barrier to entry for using Scalaz.
scala scalaz monads -
Introduction to Lambda Calculus
Featuring Maciek Makowski
Software is pervasive in the modern world and has influence over many aspects of our lives. In some cases, such as avionics or medical equipment control, human life depends on the correctness of software. Yet, high profile cases of bugs do not inspire confidence in the state of software...
scala functional-programming lambda -
REST on Akka: Connect to the world
Featuring Mathias Doenitz
Geared towards providing and consuming REST APIs in high-performance systems, akka-http enhances the increasingly popular Akka toolkit (http://akka.io) with its own client- and server-side HTTP stack, supporting a number of interesting features:
scala spray akka akka-http -
Case classes a la carte with shapeless, now!
Featuring Miles Sabin
Case classes are one of Scala's main selling points. For escapees from Java they offer a massive reduction in boilerplate and increase in correctness relative to the code that would typically have to be written by hand to achieve the same effect. For people coming to Scala from the Haskell...
scala shapeless -
Slick: Bringing Scala’s Powerful Features to Your Database Access
Featuring Rebecca Grenier
This talk will teach you how to use Slick in practice, based on our experience at EatingWell Media Group. Slick is a totally different (and better!) relational database mapping tool that brings Scala’s powerful features to your database interactions, namely: static-checking, compile-time safety,...
scala -
Scala Abide! A lint tool for Scala
Featuring Iulian Dragos
Recently there's been a flurry of compiler plugins aimed at finding potential errors, or forbidding certain patterns, in Scala: Linter and its forks, Wart Remover, ScalaStyle. Abide aims at providing a common frame for all such efforts.
scala -
Building robust data pipelines in Scala
Featuring Alex Dean
Over the past couple of years, Scala has become a go-to language for building data processing applications, as evidenced by the emerging ecosystem of frameworks and tools including LinkedIn's Kafka, Twitter's Scalding and our own Snowplow project (https://github.com/snowplow/snowplow).
scala functional-programming -
The framework-less Scala Dependency Injection framework
Featuring Adam Warski
In the live-coding-only talk we'll walk through some of the features of DI containers and see if we can replace them with pure, type-safe Scala code. We'll start with ""manual"" DI, followed by using MacWire. With one simple
scala dependency-injectionwire[]
macro, we can save a lot of typing... -
Playing with Scala: Moving Children into Scala and Play at the BBC
Featuring Gary Higham
In this talk Gary will discuss the process of BBC Future Media Children's adoption of Scala and Play.
The BBC is changing. The way they produce content is changing, the way their audience consumes content is changing. To ensure BBC Future Media Children’s continues to deliver innovation at...
scala play -
Nearly 8 years of Lift
Featuring David Pollak
The Lift web framework was the first non-trivial third party library for Scala and has grown and evolved over nearly 8 years.
scala lift -
Building distributed Akka systems
Featuring Jan Machacek
Cutting-edge reactive applications are a great fit for the enterprise landscape. Jan will walk you though a large distributed actor system, outlining the key design choices, explaining not only their technical consequences, but also the change of thinking required to successfully design and...
akka scala distributed -
Ensime - The other IDE
Featuring Rory Graves
Ensime (https://github.com/ensime/ensime-server), is a Scala IDE for Emacs, It is a fundamentally different design to other IDEs in that it is implemented as a server doing the lifting and emacs doing the display.
scala functional-programming ide ensime -
Beyond URL Matching: Mastering the Spray/Akka-Http Routing DSL
Featuring Age Mooij
Most REST frameworks can match request URIs and then pass the raw request to some kind of handler function. But is that really enough?
Spray's routing DSL is an incredibly powerful toolkit for writing high-performance REST APIs. It takes care of every aspect of Http request handling and...
scala spray akka -
Evolving Identifiers and Total Maps
Featuring Patrick Premont
You've used standard type-safe practices and immutable structures to build applications that are quite reliable. You still deal with failure modes that are not caught by the compiler. Could you reasonably go further and gain extra safety? We'll look at a key invariant that goes unchecked...
scala functional-programming data-structures -
Why Scala is Taking Over the Big Data World
Featuring Dean Wampler
Want to find out why those dealing with Big Data are increasingly being won over by the power of Scala? Dean Wampler, recognised Scala author and expert, will give the keynote to open the second day of Scala X.
scala big-data functional-programming jvm -
Reactive Programming with Algebra
Featuring André Van Delft
R&D on reactive programming is growing and this has delivered many language constructs, libraries and tools. Scala programmers can use threads, timers, actors, futures, promises, observables, the async construct, and others. Still it seems to us that the state of the art is not mature:...
scala reactive-programming -
The Process: using Kafka to drive microservices architecture
Featuring Pere Villega
In this talk we explore an implementation of an event-driven microservices architecture using Scala technologies, including Akka and Kafka.
Use of ‘microservices’ is becoming the standard to implement applications that serve millions of users. But when developing such a system, developers face...
scala microservices -
TableDiff - a library for showing the difference between the data in 2 tables.
Featuring Sue Carter
I'll talk through the process of developing the library and how Scala affects each part of that process.
scala scala-libraries -
Bootstrapping a Scala Mindset
Featuring Andrew Harmel-Law
The aim of this session is to map out the key stages involved in moving productively from a Java to a Scala mindset.
scala java -
Functional Data Validation
Featuring Dave Gurnell
Sooner or later, all developers have to deal with data validation: reading input from the user, checking it, and reporting errors back to the UI. For such a ubiquitous task, validation is surprisingly subtle and complex. Fortunately it also serves as an excellent demonstration of using a...
scala functional-programming data-validation -
Netflix + Scala
Featuring Brendan McAdams
Find out the architecture Netflix (producers of such fine entertainment as "Lillyhammer" & "Arrested Development") is using for their next generation device metadata APIs – specifically, the tech stack & development+deployment processes.
scala -
Code Reviews Gems
Featuring Richard Dallaway
This session explores difficulties teams are experiencing with Scala, and how to overcome them. If you're starting or growing a team, the code examples and alternatives we present may help you progress faster.
scala -
3
Fun and Profit within the Evil Empire: Scala in Finance
Featuring Chris Agmen-Smith, Franck Rasolo and Paul Allton
You don’t take a job in finance to explore the boundaries of type theory. But perhaps you should. Brush the boilerplate and bureaucracy away, and banking offers plenty of fun challenges.
scala banking microservices acceptance-testing akka -
Scaling business application development with Play and Scala
Featuring Peter Hilton
Scaling web applications is usually about runtime performance for high-traffic consumer applications. This talk is about a different kind of scaling: architectures that increase development speed for small business applications. Using Play and Scala for something that would be easy to build with...
scala play scalability -
ScalaTest and Scalactic 3.0
Featuring Bill Venners
In this talk, Bill Venners will give you a tour of what's new in ScalaTest and Scalactic 3.0, including equality enhancements, EquaSets, restricted value types, and laws checking.
scala scalatest libraries -
Shopping around with CRDTs at Whisk
Featuring David Brooks
In this talk, David will describe how they use Commutative Replicated Data Types (CRDTs) at Whisk to provide a seamless, cross-device shopping list.
CRDTs are general-purpose patterns for achieving eventually-consistent synchronisation. They achieve this by communicating in operations - “diffs”...
scala crdt types -
High Performance Linear Algebra in Scala
Featuring Sam Halliday
In this talk, Sam will be explaining why high performance linear algebra requires hardware support and show how to utilise netlib-java in Scala (e.g. via Breeze).
scala -
Bootstrapping the Scala.js Ecosystem
Featuring Haoyi Li
It's not enough to be able to cross-compile Scala source code into Javascript and run it in the browser. You also need supporting libraries, tools, and other things in order to make a plausible development environment that you can use to do real work.
scala javascript scalajs -
Unsung Heroes: Less Fashionable Patterns in Scala
Featuring Dick Wall
Monads are the talk of the town, and everyone's doing them. In the virtual monad gold-rush, however, have we lost sight of some of the other useful tips, tricks and patterns that have got us to where we are. In this session Dick will examine a number of useful code snippets and ideas that...
scala -
Minecraft and Scala: Creating a DSL to enable kids to create Minecraft Mods
Featuring Paulo Siqueira
The computer game Minecraft is a huge hit with kids of all ages. It is also an excellent tool for teaching programming and game design. In this talk we will discuss a Scala DSL that enables kids to modify Minecraft with less cognitive overhead, and more importantly: with much more fun!
scala dsl -
Upcoming in Slick 2.2
Featuring Jan Christopher Vogt
This talks presents the major new features in Slick. Slick 2.1 improves database meta data, adds insertOrUpdate, pre-compiles take and drop and adds out-of-the-box shapes for mapping custom classes with Slick.
slick scala -
No more Regular Expressions
Featuring Phil Wills
In this talk Phil aims to persuade you that whenever you think of writing a regular expression, you should consider writing a parser instead.
scala expressions parser parboiled -
A Skeptic's Look at scalaz' "Gateway Drugs”: A Practical Exploration
Featuring Brendan McAdams
We've all seen them on the corner of our local software development neighborhoods: FP purists, shamelessly peddling scalaz to unsuspecting developers. Lured in by promises of Free Monoids, Semigroups, and Endofunctors these developers soon seem lost in throes of ecstatic coding. "
To the...
scala scalaz functional-programming -
Using Docker, Scala and Akka for integration tests
Featuring Andreas Gies
Developing a distributed application presents many challenges and one of the biggest is integration testing. While we have many tools at our fingertips for tackling unit tests integration tests are run manually within many projects. Most of the time this is because an integration test requires a...
scala akka docker integration-testing -
A Field Guide to DSL Design
Featuring Tomer Gabel
Scala combines a powerful type system with a lean but flexible syntax. This combination enables incredible flexibility in library design, most particularly in designing internal DSLs for many common scenarios: specification definition and matching in Specs² and ScalaTest, request routing in Spray...
scala dsl -
Live coding Scala.js reloaded
Featuring Sébastien Doeraene
Have you been missing all the goodness happening this year in Scala.js, the Scala to JavaScript compiler? Here's your chance to catch up.
scala functional-programming javascript scala.js -
State of the Typelevel
Featuring Lars Hupel
The typelevel project is nearing its second anniversary -- a great time to look at what it is actually about. Starting out as a community of Scala projects aiming for principled library design, we have been continuously growing by adding more projects and most recently, forking the Scala compiler...
scala functional-programming types -
42: Rise of the dependent types
Featuring George Leontiev
Scala is a language with a very sophisticated type system. It is even said to be the "poor-man's prolog". As part of his hacker-time (20% time program) at SoundCloud, George collaborated with Eugene Burmako to explore the possibility of adding an accessible way to use literal-based...
scala types -
Under the Hood of Scala Implicits
Featuring Alexander Podkhalyuzin
Implicit conversions and implicit parameters are fundamental and unique features of Scala that are powerful at the same time. To use these features to their maximum potential, and do so with confidence, you have to understand the specifics of how Scala compiler’s implicits search works. I will...
scala implicit spray -
All you don't need to know about typeclasses
Featuring Julien Sirocchi
Scala syntax is succinct, clean and easy to read, however some of the library signatures that support this are more complicated than one might expect. Type-classes use sophisticated signatures to enable clean client code. This talk is aimed at novice or intermediate Scala developers wanting to...
scala types typeclass -
Declarative protocol messages in Scala for testing distributed systems
Featuring Patrick Tschorn
When testing distributed systems, protocol messages have to be parsed, instantiated and modified, which leads to incidental code that obscures the test narrative.
scala distributed testing -
An invitation to functional programming
Featuring Rúnar Bjarnason
Scala is not a purely functional programming language. But we can restrict ourselves to a purely functional subset of Scala. The question is: should we? This talk will make the case that the answer is unequivocally "yes". We can treat Scala as a purely functional language. But more than...
scalax scala functional-programming
-
ScalaX2gether Community Day 2018
One day in London
We're excited to announce ScalaX2gether, to be held on Saturday 15th December at Skills Matter's home, CodeNode. #ScalaX2gether is organised by Skills Matter and the Community. Together, we will host a day-long event with a few workshops and challenges.
fury functional-programming microservices hackathon hack scalax scala -
Scala eXchange London 2018
Two days in London
Join us at Scala eXchange London 2018, Europe's largest gathering of Scala engineers, to discover where Scala is headed in 2019 and to meet, learn and share skills with 1,000+ other passionate Scala developers.
types scala-cats cats tagless-final tagless spark-streaming kafka apache-spark apache-kafka scalaz scalacheck dotty spark akka scalac scala-web data scala-test devops microservices functional-programming reactive scala -
ScalaX2gether Community Day
One day in London
We're excited to announce the return of the Scala eXchange Community Day - ScalaX2gether, to be held on Saturday 16th December at Skills Matter's home, CodeNode. The #ScalaX2gether is organized by Skills Matter with the aim of hosting a community day with a few unconference sessions.
scala scalax hack community -
Scala eXchange 2017
Two days in London
Want to understand where Scala is going, what’s Lightbend’s vision for collaboration, competition and interoperability in Scala? How the Dotty project will help develop new technology for Scala tooling and concepts for future Scala language versions? Are you involved in a large Microservices or...
scala reactive functional-programming scala-ide microservices devops scala-test data scala-web -
ScalaXHack 2016
One day in London
We're excited to announce the return of the Scala Exchange Hack Day, to be held on Saturday 10th December at Skills Matter's home, CodeNode. The #ScalaXHack is organized by Skills Matter, with Underscore, Typelevel, and the Scala Centre. Together, we will host a daytime hackathon with a...
scala hack scalax scalaxhack hackathon unconference typelevel underscore functional-programming fp -
Scala eXchange 2016
Two days in London
Want to understand where Scala is going, what’s Lightbend’s vision for collaboration, competition and interoperability in Scala? How the Dotty project will help develop new technology for Scala tooling and concepts for future Scala language versions? Are you involved in a large Microservices or...
scala reactive-programming functional-programming akka play lift machine-learning deep-learning scalax -
ScalaXHack
One day in London
We're excited to announce the first ever Scala Exchange Hack Day, to be held on Saturday 12th December at CodeNode in partnership with Underscore and the London Scala User Group.
scala scalaxhack scalaxhack-day -
Scala eXchange Party
0.5 days in London
Scala eXchange 2015 continues at Skills Matter's new home CodeNode for the Scala eXchange Party! Starting at 6.30pm on 10th December 2015!
scala scala-x -
Scala eXchange 2015
Two days in London
Want to hear the latest happenings in the world in Scala? Interested in hearing how your peers are approaching similar software challenges? Then join us at Scala eXchange 2015, Europe's largest community conference on Scala.
scala reactive-programming functional-programming akka play lift -
Scala eXchange 2013
Two days in London
The Scala eXchange returns to Skills Matter for it's third year - share, learn and innovate with 350+ attendees, 60+ presentations, and the world's greatest Scala Rock Stars!
scala akka playframework spray scalatest scala-collections reactive-programming scala-macros scalax functional-programming -
Scala eXchange 2012
Two days in London
The Scala eXchange returns to Skills Matter for it's second year. The Scala eXchange comes in the wake of Scala Days in April - 350+ attendees, 60+ presentations, and the lovebus! -
For updates on our latest confirmed speakers and talks, follow us on Twitter @skillsmatter and #scalax
scala akka typesafe -
Scala eXchange 2011
Two days in London
Skills Matter is very pleased to announce our first-ever annual Scala eXchange, on June 15-16 2011 in London.
This 2-day conference provides both high level presentations and low level follow-up tutorials/design discussions afterwards -- making it one of the most exciting dates on the calendar of...
scala functional-programming