2017 LX Scala Review and Videos

 

LX Scala 2017 was held May 11-12th in Lisbon, Portugal. With over nine speakers, 160 attendees, and plenty of networking, this year’s LX Scala was one for the books.

Here are a few summaries of some of the incredible presentations covered at the event, videos of the talks, and more information to get you caught up-to-date in case you had the misfortune of missing it.

Heather Miller at LX Scala

Heather Miller

Antonio’s summary:

In the first part of her talk, Heather provided a series of data points illustrating companies that consider FLOSS (Free-Libre Open Source Software) as the main option instead of proprietary alternatives and how these figures have been rising over the years. On the other hand, the data shows the minimal support that FLOSS obtains from these companies and the risk this poses, because, if it continues, FLOSS could disappear. To reverse this situation, Heather proposes that more companies allow engineers to contribute to FLOSS.

Heather has, in a nutshell, tried to encourage the Scala community to become more participatory, contribute to Open Source projects, and create more libraries to strenthen the language further.

In her final message to the audience, Heather stressed the need to expand the community, and they seemed to grasp the importance of the message. In short, it was a nice, easy-to-follow opening keynote, with Heather delivering an important message that got everyone thinking.

Noel’s Summary:

Heather started with an analogy about how physical infrastructure, such as roads, bridges, etc. are set up so that anyone can use it, but also it’s set up so that any necessary repairs are taken care of from a public purse. Digital infrastructure has similarities because FLOSS is fundamentally distributed. However, the issue is that there is no setup for making sure the infrastructure is cared for in the same way that physical infrastructure is. A study from Black Duck found that 78% of companies run on FLOSS, for reasons such as the quality is comparable or better than proprietary software but without any prohibitive costs. However, while the number of users has soared, the number of contributors and maintainers has stayed the same. Another study found that 64% of the top 200 Github projects are mainly maintained by one or two developers, so the risk of that project dying should the main maintainer(s) leave is relatively high. Heather’s aim for the Scala Center is to make contributing to FLOSS as easy and painless as possible. This includes such initiatives such as the Scala Center “Sprees” - aiming to have hackathons culminating in approved PRs.

Watch the full presentation:

 

Additional Resources:


Kelley Robinson

Kelley Robinson

Antonio’s Summary

Kelley began her talk by commenting on several of her experiences relating to Free Monads, such as the use of Free Monad code to solve simple functionalities in which, in her opinion, only managed to make everything more confusing. After this brief introduction, she covered five points in her talk:

  • Monoids, Functors & Monads
  • How to be “Free”
  • Why & Why Not “Free”
  • Alternatives
  • Real World Applications

She gave a brief and general explanation about a few concepts like Monoid, Functors, and Monads. In my opinion, she did an excellent job explaining these concepts so that, even someone who had never heard of them, could understand.

To properly put ourselves in this situation, she explained the concept of “free” but used it in the sense of “unrestricted” rather than “zero-cost.” Kelley explained why she does not recommend the use of free monads, stating that although the code works well, there are parts of the functionality that are not controlled and are up “in the air” without knowing what’s actually happening. She proposes other options to avoid its use, and safer alternatives such as the use of Doobie. Also in her talk, she said that she prefers a safer and less abstract code, although for this she takes more time to implement it, that way you can also understand exactly what the code does. With respect to this last idea, she advises that we make sure that we only use the Monads when it’s really necessary.

In summary, her talk emphasized a few good pieces of advice: Know your domain, use clean abstractions, and share knowledge. The talk was well-structured and easy to follow. It included a moment of hilarity towards the end, when she asked the audience if anyone was using Free Monads and Raúl Raja who was about to give a talk on Freestyle representing some opposing ideas responded, “Yeah, just a little.”

Noel’s Summary:

Kelley’s talk introduced a problem she faced at work, having to support an application which had been built using free monads, and everyone in her company was afraid to touch it. She then gave comprehensive introductions into the fundamentals of monoids, functors, and monads before moving on to free monoids. Kelley explained how “free” meant “free from interpretation,” so for free monads, this means free from interpretation, so no side effects, it’s possible to run your algorithm through different interpreters, and you keep the stack safe by using the heap instead. She tied this back to her problem she’d faced at work, and concluded that using free wasn’t the clearest or most straightforward way - simply because it’s possible to use free monads doesn’t mean you should.

Watch the full presentation:

 

Additional Resources:


Łukasz Indykiewicz

Łukasz Indykiewicz

This talk was a nice introduction to how to use and implement type classes in Scala, and how to use the power of Scala’s syntax to make working with type classes bearable. He touched on how to automatically derive type class instances using Shapeless, and also showed the Typelevel project, Simulacrum, which removes most of the boilerplate of creating your own type classes.

Watch the full presentation:

 

Additional Resources:


Raul Raja

Raúl Raja

Raúl started his talk with an introduction of Freestyle. It’s an Open Source framework project that is more like a collection of libraries and we can use its core to build more libraries or applications. In his opinion, Scala is an impure object-oriented language, where we can encode functional programming, to which Heather asked him “Sorry pattern matching so it’s not a functional programming language”. ;) Also, he explained the goals of the library, the difference between using Freestyle, and Manual encoding.

He divided his talk into:

  • Explaining the internal code.
  • Showing a workflow.
  • Explaining the effects using Error as an example, although we could see the different effects on the slides.
  • Showing all the integrations available to Freestyle.
  • Optimizations. He spoke a little about another 47 Degree Open Source library, Iota, and showed a chart showing the benefits of their integration.

He finished his talk by explaining the road ahead for Freestyle and inviting the community to contribute.

Watch the full presentation:

 

Additional Resources:


Holden Karau

Holden Karau

Holden kicked-off her talk off with an introduction about herself and her work at IBM. Then she continued with a quick introduction to Spark including its different pieces and focusing on Spark ML. She talked about Spark Datasets and Dataframes highlighting that both the data & computations on data are automatically distributed and showing that they have best performance compared with RDD groupByKey and reduceByKey. After talking about how to load the data, she explained what the Spark ML pipelines are and how they consist of different stages (estimators or transformers). She kept going through her example to show what Spark ML pipelines look like, passing by different steps while preparing the data, setting up a pipeline with a couple of stages, and training the model. She also showed how to implement a Transformer and an Estimator and how to make the training function. Finally, she gave a few recommendations on helpful tools and other things you can add to your models.

Watch the full presentation:

 

Additional Resources:


Sofia and Kingsley

Sofia Cole & Kingsley Davies

Sofia and Kingsley’s talk began with Kingsley giving a short introduction of Functional Programming and microservices. He showed half-a-dozen of the main microservice frameworks including Spark, Lagom, Akka, Play, Http4s, and Finch.

  • Play: Sofie showed in her slides, part of the code of a small REST application and said that this has excellent support and documentation
  • Http4s: Davies told us the different versions and compatibility with scala. He showed an example of the service and Server.
  • Spray and Akka: She started saying that less people are asking/answering questions since the latest documentation of Spray which is a bad sign. She compared Spray code with Akka-http and her conclusion was that is quick and clear, implicit makes the routes slightly magic and a large and active community exists.
  • Lagom: Best practice implementation for microservices, distributed system at heart and many moving parts.

Watch the full presentation:

 

Additional Resources:

Ruben Badaro

Ruben Badaro

  • Building to Scale: How We Ended up Building One of the World’s Largest Calculation Systems
  • Review by

Ruben Badaro discussed building to scale. Growing business demands have created the need for corporations to rely on systems that allow for specific calculations that can be executed at scale. Ruben reviews how Morgan Stanley started their journey to solve this challenge by piloting a number of products and approaches–eventually leading them to build one of the world’s largest calculation systems. Utilizing Scala, Morgan Stanley’s technology teams built a bi-temporal graph programming environment, including UI and tooling, that enables users to run large-scale calculations in a distributed environment. He also described what it took to extend the Scala compiler, async, tooling and how more than 300 developers came together to write 2 million+ lines of code.

 

Additional Resources:


Luis and Reis

Luis Reis & Rui Batista

  • Functional Streams with Kafka: A comparison between Akka-streams and FS2
  • Review by Dominigo Valera

Luis and Rui began with an introduction​ to Kafka, talking about topics and partitions, and the Java API. After introducing Akka-Streams and FS2, the talk continued comparing these two stream-based frameworks and how they work with Kafka - paying attention to different features such as Read-Write, Offset Management, and Parallelism. The provided clear examples of both of these in order to understand their differences. Finally, they talked about Rui Batista’s fs2-kafka and its API design.

nbsp;

Additional Resources:


Viktor Klang

Viktor Klang

The final keynote from Viktor was a list of notes that he had found useful during his career. Some of his takeaways include:

  • Provide examples when generalizing or abstracting
  • If you want people to learn, pick up where they are, not where you want them to be - If you can’t solve something without programming, you can’t solve it with programming
  • Zero known defects: aim for this in your codebase
  • The Scout rule: Leave your codebase cleaner than how you found it
  • Identify what motivates you, and do these things when there is nothing more urgent - Spend as much time advocating as doing
  • Avoid things that cannot be done, but just because something is not solvable in the general case doesn’t mean that there isn’t a solution

He also had a nice anecdote about zombies.

Video coming soon…

Additional Resources:


These are just a selection of the great presentations at LX Scala; you’ll be able to watch all of these and more on our YouTube channel.

We want to send our thanks to all of the stellar speakers, sponsors, attendees, and individuals who made this event a success (and big thanks to our internal organizational team) and co-organizers thanks to co-organizers e.near and codacy.

Check out the LX Scala Photo Gallery and subscribe here to be notified when video presentations are ready for your viewing pleasure.

Coming soon…

Missed LX Scala but want to attend a 47 Degrees’ conference? You’re in luck…Lambda World is coming to Cádiz, Spain October 26th-27th, 2017. Tickets are now on sale but are going fast, register here

Lambda World 2017

blog comments powered by Disqus

Ensure the success of your project

47 Degrees can work with you to help manage the risks of technology evolution, develop a team of top-tier engaged developers, improve productivity, lower maintenance cost, increase hardware utilization, and improve product quality; all while using the best technologies.