• London Scala Talks: Chris Birchall and Aleksandar Skrbic

    Online event

    Join us virtually for another round of London Scala Talks! This month, we'll be hearing from Chris Birchall. You can join the Virtual Classroom at https://eu.bbcollab.com/guest/df6879c6313a410f9a21dfd2bdb2a68f 6:30pm - Room opens. Come along for a chat! 7:00pm - *Chris Birchall Type class derivation in Scala 3* Type class derivation is one of the most exciting new features of Scala 3. In this talk I'll explain how library authors can use it to make life easier for their users. I'll start with a quick recap of how type class derivation is typically achieved in Scala 2, and how it looks in other languages such as Haskell and Rust. Then I'll live-code a `derived` method for the world's simplest type class, Show. Once we've seen how all the pieces fit together, we can move on to a more interesting example: deriving Functor for paramterized ADTs. Finally I'll demonstrate how I'm planning to combine type class derivation with Scala 3's new macro framework to allow automatic gRPC server and client generation in Mu (https://higherkindness.io/mu-scala/), a microservices framework developed by 47 Degrees. 7:40pm - Intermission 7:50pm - *Aleksandar Skrbic - Microservices Patterns with Akka and Kafka* Talk about some common patterns specific to microservices and streaming architectures. I will show how to integrate Kafka in your microservices and why Akka and especially Akka Streams are great tool for that. Also, I will code a few Akka based services and show how interservice communication can be implemented with Akka Http or Alpakka Kafka. Finally, I will review our Akka and Kafka based architecture and of course code will be available on GitHub.

  • Virtual Scala Edition June

    Online event

    Hello Scala lovers, We are doing a nice online meetup together with several other user groups in Europe! Jon Pretty introduces the two new libraries Quarantine and Probably, and Andreas Drobisch shares insights about Event Sourcing at Scale. = Agenda (BST) = 18:00 - 19:00: Jon Pretty: Probing the Unprovable, Proving the Improbable and Improving Your Programs' Probity 19:00 - 19:10: Q&A 19:10 - 19:40 Andreas Drobisch: Event Sourcing at Scale 19:40 - 19:50: Q&A = Registration = This meetup is happening online, you can register for the webinar here: https://ziverge.zoom.us/webinar/register/WN_VgJtuXIXQHO3daDzWmbDNg = Talk & Speakers = == First talk == Jon Pretty: Probing the Unprovable, Proving the Improbable and Improving Your Programs' Probity Writing robust, reliable software is the goal of most developers. Scala's type system provides a framework in which many desirable invariants can be enforced and proven at compile-time, while the JVM offers the means to probe the runtime to check that all inputs produce the expected results when executed. With this goal in mind, we will examine two new libraries, Quarantine and Probably, which offer solutions from these two orthogonal directions, each introducing a novel idea with the potential to change the way you write tests and handle exceptions. We will explore the details of Scala's type system which facilitates Quarantine's approach to exception handling, and focus on the compositionality that Probably provides as a testing library. Finally, we will look ahead to Scala 3, and discover what possibilities it brings for developing more reliable software in the future. About the speaker: Jon has worked full-time as a Scala developer since 2004, and has been heavily involved in the Scala community for as long as it has existed. He travels extensively, speaking on a variety of Scala topics at many Scala events worldwide, including talks on his open-source libraries and original research on subjects such as type inference and the differences between type members and type parameters. == Second talk == Andreas Drobisch: Event Sourcing at Scale What if you could build your entire application state from immutable events, instead of waiting to update it whenever change comes? As a commerce platform with high traffic and millions of events, Event Sourcing has a great impact on how we build our application. Andreas will give you a quick look into how we tackle the topic of Event Sourcing at commercetools and the benefits and drawbacks of our approach. About the speaker: Sitting in front of computers since 1992, on the JVM train from 2010 and a Scala enthusiast since 2012, Andreas is currently a Senior Scala Engineer at commercetools who currently enjoy sitting on the balcony more than usual. = Sponsors = This Meetup is brought to you by our sponsors: commercetools GmbH in a collaboration with Ziverge Inc.

  • London Scala Talks: Roksolana Diachuk and Adam Warski

    Online event

    Join us virtually for another round of London Scala Talks! This month, we'll be hearing from Roksolana Diachuk and Adam Warski. We look forward to seeing you! 6:30pm - Room opens. Come along for a chat! 7:00pm - *Roksolana Diachuk: War stories of lighting a Spark in the Kubernetes sea* Big data, Spark, Kubernetes - you may have heard these buzzwords far too many times. Have you ever thought of combining all of them? Running spark jobs on Kubernetes - sounds intriguing! But sailing the unknown see always goes with a challenge, and not even one. And who knows what is hiding deep in the water? If you are ready, let’s embark on this dangerous yet exciting journey.In this talk, I am going to talk about new Spark operator for Kubernetes which allows to run Spark jobs on Kubernetes in a more automated way. The audience will find out about all the challenges my team and I encountered while researching this possibility. How we came all the way through using Spark operator alpha version which then got updated to beta (you know, updates). How we dealt with problems and challenges we encountered on our way. 7:40pm - Intermission 7:50pm - *Adam Warski : FP + relational databases = ?* Functional programming is an increasingly popular approach to writing and thinking about code. Is it also applicable to such daily programming tasks as accessing a relational database? Is it possible to work with transactions in a "functional" way? Yes! But what does it mean in practice? And is this any better than using JPA's or Spring's @Transactional? In this live-coding session, we'll try to answer these questions, and demonstrate how the "functional" approach improves over the "traditional" one in three areas: working with multi-thread code, requiring a framework and precisely delimiting transaction boundaries. In the code we'll use the Doobie library, however no prior knowledge of Doobie is necessary. In fact, you should be able to follow the talk even if you don't know Scala! We'll be focusing on one specific problem area, however the techniques that we'll use have broader applicability, and are often used to solve other problems as well. 8:30pm - Grab a drink and discuss the talks! You can join the virtual conference at: https://eu.bbcollab.com/guest/1015c16aa8334be08d26650300ff60c4

  • London Scala Talks: Jon Pretty and Nicolas Rinaudo

    Online event

    Join us virtually for another round of London Scala Talks! This month, we'll be hearing from Jon Pretty and Nicolas Rinaudo. We look forward to seeing you! *Jon Pretty: IDD: Isolation-Driven Development — things I've been working on recently* We're delighted to hear from Jon Pretty. Jon will showcase some of the things he's been working on recently. If you'd like to join in the fun, you can browse his code remotely via VSCode LiveShare. Download the LiveShare extension beforehand for smoother sailing. *Nicolas Rinaudo : Far more than you've ever wanted to know about ADTs* Algebraic Data Types are a simple yet surprisingly powerful concept, and one that all developers should be comfortable with. This talk intends to motivate them, explain some of the theory behind them, and tackle their generalised form, GADTs. A link to the virtual conference will be shared with registered attendees. See http://www.lsug.co.uk/ for a more details.

  • London Scala Workshop: Zainab Ali & Kai Ang - Coding with Cats - Online Only

    *This meetup is online only* You can join the virtual classroom at https://eu.bbcollab.com/guest/9dacd911c58247df98f31826d558db67 Join us in another London Scala Workshop! This month, we'll be hearing from Kai Ang and Zainab Ali on Coding with Cats. We look forward to seeing you! *Kai Ang & Zainab Ali: Coding with Cats* Christmas is long gone, but it's never too late to celebrate functional programming! And there's no better way to celebrate than by solving the Advent of Code (https://adventofcode.com/2019/). Join us and have a crack at the first advent of code challenge. Starting with pure functions, recursion and collections, we'll work our way up to using abstraction, typeclasses and the wonders of the functional cats library. This workshop is a great opportunity to get started with functional programming and boost your Scala skills. Setup instructions can be found at http://www.lsug.co.uk/workshop/kata/scala/functional/typelevel/2020/03/06/workshop-coding-with-cats.html . *Agenda* 6:30pm - Virtual classroom opens. Join us and get set up 6:45pm - Workshop - first half 7:30pm - Intermission 7:45pm - Workshop - second half 8:30pm - Close We're Community Partners with Meetup Mates: https://meetup-mates.com. If you would like to attend this meetup but you feel overwhelmed by the idea of joining by yourself, Meetup Mates is a great way to connect with like-minded people to go to meetups with!

  • London Scala Talks: Jacob Wang & Lucio Biondi


    Come along to Playtech for another round of London Scala Talks! This month, we'll be hearing from two exciting speakers - Jacob Wang and Lucio Biondi. We look forward to seeing you! 6:30pm - Doors open. Come along for free dinner and refreshments! Vegetarian and gluten free options are provided. Let us know if you'd like something special - we'd be happy to accommodate. 7:00pm - *Jacob Wang: Practical Type Safety* What is type safety? Why should we care? What techniques are possible to improve type safety in my Scala code? should I use them? Whether you're a beginner or already familiar with Scala, this part-philosophical, part-practical will empower you to write better code, and be happier writing them too! 7:40pm - Intermission 8:00pm - *Lucio Biondi: Authentication & role-based authorisation for http4s microservices* While developing REST micro-services, and http4s is a good choice to this end, one of the many challenges every team has to face with sooner or later is how to control access to the resources the system provides. This is of course a sensitive topic from a security standpoint, so public and complete implementations from which to draw inspiration are not easily found on the Web. 8:40pm - Join us in a nearby pub or restaurant to discuss the talks!

  • London Scala Community Day


    Join us for our weekend Community Day! We'll be holding workshops and presentations throughout the day on all things Scala. Friends and family are very welcome! Let us know if you'd like to bring younger family members. *Schedule* 10:00 Doors open. Come along and suggest your own workshop topics! Tea, coffee and snacks will be provided. 10:30 First workshops 12:00 Break. Lunch will be provided, courtesy of our hosts Quantexa. Vegan and vegetarian options will be provided. Let us know if you would like something special. 12:45 Second workshop & presentations 14:00 Wrap up. Let's talk about what we've learned in a nearby cafe. *Workshops* *ScalaBridge* Join a community for people who are underrepresented in technology to learn Scala or improve their skill in the language. We cater to all levels—really! If you've never programmed before we'll get you started. If you're an experienced Scala developer we'll help you take the next step. See https://www.scalabridgelondon.org/ for more details. *Julien Truffaut : Error handling* They are many ways to deal with runtime errors. The easiest and most common method consists of throwing exceptions. Unfortunately, exceptions break many functional programming concepts. In this workshop, we will see what the FP arguments against exceptions are. And what the alternatives are.This workshop is an extract from [Foundation](https://github.com/fp-tower/foundation), a two-day training course focusing on the essence of functional programming in Scala. *Dave Gurnell : Doing things in Parallel with Cats* In this workshop we'll look at running operations on monads in parallel using Cats. We'll look at the nature of a monad, its cousin the "applicative", the handy `Parallel` type class, and how everything hangs together in Cats 2.x. It you're curious or confused about combinators like `mapN`, `sequence`, and `traverse`, this is the place for you. You should emerge with a much deeper understanding of these operators and their parallel counterparts, `parMapN`, `parSequence`, and `parTraverse`. ​ To benefit from this workshop you should have experience with the `map` and `flatMap` methods that are common to many Scala data types, plus a passing (but by no means deep) understanding of Cats (a quick read of Chapters 1 and 2 of [Scala with Cats](https://underscore.io/books/scala-with-cats) will be enough). *Talks* *Fabio Tiriticco : Tame Crypto Events with Streaming* How do you tame the chaotic world of cryptocurrencies, with all that data that doesn’t seem to make any sense? The only possible answer is Reactive Systems and controlled streaming. Our goal is to find reliable patterns between events relative to a cryptocurrency (like a conference or a fork) and its relative price fluctuations. We need an always-on system that gathers this data from different sources, and we can’t afford missing data because of downtimes. This talk covers all the steps of a reactive data project. We start with domain modeling with DDD and Event-storming, then touch on the implementation side with a backpressured toolkit like Akka Streams, run our services on Google Cloud’s Kubernetes and finally look at the data we gathered trying to find patterns. *Hugh McKee: The Evolution From Monolith to Microservices to Serverless and Beyond* If you are a developer or an architect, the odds are that you grew up building systems that are now commonly known as monoliths. In the last few years, we've seen a significant evolutionary shift to systems composed of microservices. Today we are witnessing the birth of serverless. The rate of evolutionary change is accelerating. But what is changing, and what remains the same? In this talk, we will look at the evolution from the monolith to serverless seeking to extract the variables and the constants. We will also look at the progression from serverless to an inevitable future of frictionless computing.

  • London Scala Talks: Joe Warren and Daniela Sfregola

    Deliveroo - London Office

    Come along to another round of London Scala Talks! This month, we'll be hearing from the exciting Joe Warren and our awesome Daniela Sfregola. We look forward to seeing you! 6:30pm - Doors open. Come along for free dinner and refreshments! Deliveroo are treating us to a spread from their favourite restaurants. There are plenty of vegetarian and vegan options, and a variety of non-alcoholic and alcoholic drinks. Let us know if you'd like something special. 7:00pm - *Joe Warren: Lessons Learned Building a van Laarhoven Lens Library* Sometimes called "The JQuery of DataTypes": Lenses and other Optics provide a clean functional interface to the common task of modifying complex data structures. Brushing over any practical use cases, this talk takes a magnifying glass to one particular Optics representation: van Laarhoven Lenses. We'll explore how building a van Laarhoven-based Lens Framework may require some of the lesser known Functors, and see if Lenses can shine a new light on how we think about Abstraction. 7:40pm - Intermission 7:50pm - *Daniela Sfregola: FP: The Good, the Bad and the Ugly* You are about to fall in love with Functional Programming, if not already. You are going to learn the good parts that are going to make your day-to-day life easier. But since nobody is perfect - not even FP -, you are also going to see its bad and ugly parts, and you'll discover how to deal with them: from learning challenges to performance issues on the JVM. 8:30pm - Join us in a nearby pub or restaurant to discuss the talks!

  • London Scala Kata: Yilin Wei - Optics with Monocle


    Come along to another London Scala Kata! This month, we'll be hearing from Yilin Wei on Optics with Monocle. We'll also be raffling off a 50% discount ticket to Julien Truffaut's workshop https://www.eventbrite.co.uk/e/foundation-of-functional-programming-day-1-registration-67033590273. Come along to join in! We look forward to seeing you! *Yilin Wei: Optics with Monocle* A coding kata on the Monocle Optics library: http://julien-truffaut.github.io/Monocle/ Sign up at SkillsMatter at https://skillsmatter.com/meetups/13009-london-scala-kata-yilin-wei-optics-with-monocle and follow the setup instructions at http://www.lsug.co.uk/workshop/kata/scala/functional/2019/10/17/kata-optics-with-monocle.html 6:30pm - Doors open. Come along in and get set up 6:45pm - Workshop - first half 7:30pm - Digest our new knowledge over some drinks and dinner! We're in for a treat this month with Taiwanese baos, courtesy of our sponsors Oxford Knight. Halal, gluten free, vegetarian and vegan options will be provided. Let us know if you'd like something else - we'd be happy to accommodate! 7:45pm - Workshop - second half 8:30pm - Join us in a nearby pub or restaurant to discuss what we've learned!