- Bill Venners introduces Property-based Testing in ScalaTest 3.1
This is a joint event with SF Scala: https://www.meetup.com/SF-Scala/events/258488711/ ----- ScalaTest 3.1 will include built-in support for property-based testing. In this talk, Bill Venners will explain property-based testing, walk you through the design implementation of ScalaTest's support in 3, and compare it to ScalaCheck's approach. In addition, Bill will show a preview of Expectations and Facts, coming in ScalaTest 3.2, and show how Facts and property-based testing can be combined to describe and check contract specifications. Bill Venners is president of Artima, Inc., provider of Scala consulting, training, books, and tools. He leads the open source projects for the ScalaTest testing library and the Scalactic library for functional, object-oriented programming. He is coauthor with Martin Odersky and Lex Spoon of the book, Programming in Scala. And he is a community representative on the Scala Center's Advisory Board. ----- We're lucky to be in Bill's habitat, and he will teach special Scala retreats in March and April: Join us at a Scala Retreat! Step away from your daily routine and gather with other developers for a Scala learning experience surrounded by nature. In March and April, Bill Venners will be leading three Scala Retreats: March 18-20: Simply Scala Fundamentals, San Damiano, CA March 21-22: Simply Scala Advanced, San Damiano, CA April 8-9: Effective Scala, Palm Desert, CA Get more details and register here: https://www.artima.com/shop/workshop Enrollment is limited. Please register early.
- Seth Tisue, Compiler Plugins 101
Seth Tisue, Compiler Plugins 101 Abstract Compiler plugins — mysterious, difficult? Yet intriguing? Dark magic you're frightened, yet tempted, to wield? I'll cover what compiler plugins can do, what existing plugins are popular, and how to write your own. Speaker Bio Seth has been a member of the Scala team at Lightbend since 2015. His main interests are compilers and interpreters, functional programming, and open-source software. Set has been active in the Scala community since 2008, in venues such as the Scalawags podcast, the Northeast Scala Symposium, and everywhere people talk about Scala online. Before joining Lightbend, Seth used Scala to build the compiler and other tools for NetLogo, an open-source programming language for kids, teachers, and scientists. Schedule • 6:30-7:00 - networking (pizza, beer) • 7:00-7:10 - announcements etc. • 7:10-8:00 - talk • 8:00-8:30 - more networking
- Narek Asadorian, "Functional Programming: The Enterprise Edition"
Narek Asadorian, "Functional Programming: The Enterprise Edition" Abstract Despite its increasing popularity, functional programming is still stuck in the back seat when it comes to the enterprise. This talk aims to address common pitfalls in enterprise software engineering which can be avoided through the application of functional programming principles, as well as to introduce the clarity and maintainability inherent to functional code. In this talk, we will cover computational effects including failure handling, IO and partiality using various functors and monads. We will also explore the "softer" side of teaching and advocating for FP at work, including strategies for coaching teammates off of imperative and side-effect ridden coding practices. The material in the talk will focus on Scala specifically, but the principles should apply to any programming language supporting types. While enterprise software is implied in the title, the learnings and examples in the talk can be implemented in any commercial software development environment. The content presented is intended to have multiple levels of approachability. Beginners will be exposed to FP concepts from a relatable and novel angle, while advanced programmers will learn new ways to approach and teach these concepts. Engineering managers can gain an understanding of how functional code scales and remains maintainable. Speaker Bio Narek Asadorian is a Senior Software Engineer with Salesforce, where he works on streaming data pipelines and data enrichment microservices in support of the Salesforce Inbox and Einstein Activity Capture products. He is a Scala programmer and all-around functional programming enthusiast and advocate. Narek is also the organizer of Salesforce's internal programming meetup, #lambda. In his free time, he enjoys making electronic music and fine dining. Schedule • 6:30-7:00 - networking (pizza, beer) • 7:00-7:10 - announcements etc. • 7:10-8:00 - talk • 8:00-8:30 - more networking
- Vlad Patryshev, "Functional Linear Algebra"
Samsung Research America is happy to host this talk: Vlad Patryshev, "Functional Linear Algebra" Abstract It is curious that a bunch of Linear Algebra implementations are written as if it is Fortran all the way down. We can do better, and a functional implementation, with less mutability and more abstractions, may save efforts, space, and processor time. I will show pieces of easy-to-read code that works with vectors and matrices in a functional way. As an example, an efficient and practical implementation of PCA. Short Bio Vlad is currently an engineer at Salesforce. He also teaches Logic and Formal Methods at Santa Clara University. A fan of math and fp. Organizer of Scala Bay and Bay Area Categories and Types. Schedule • 6:30-7:00 - networking (pizza, beer) • 7:00-7:10 - announcements etc. • 7:10-8:00 - talk • 8:00-8:30 - more networking
- James Ward, Intro to Akka Streams
James Ward, "Intro to Akka Streams" Akka Streams is an actor-based stream processing library which supports reactive back-pressure. This session will walk through the basics of what Akka Streams is and how to use it. You’ll learn from a few slides, live coding, and some real-world examples the basics of Akka Streams. Speaker Bio James Ward is the Engineering and Open Source Ambassador at Salesforce.com. He tweets as @_JamesWard and blogs on jamesward.com. More: http://www.jamesward.com/about-james-ward/ Schedule • 6:30-7:00 - networking (pizza, beer) • 7:00-7:10 - announcements etc. • 7:10-8:00 - talk • 8:00-8:30 - more networking
- Oswald Campesato, "Deep Learning and Scala"
Oswald Campesato, "Deep Learning and Scala" Abstract A fast-paced introduction to Deep Learning (DL) concepts, such as neural networks, back propagation, activation functions, CNNs, RNNs (if time permits), and the CLT/AUT/fixed-point theorems, along with code samples in Scala and TensorFlow. Speaker Bio Oswald is a former PhD Candidate (ABD) in Mathematics, an education junkie (6 degrees), and an author of 18 technical books. He has worked for Oracle, AAA, and Just Systems of Japan, along with various startups. He has lived/worked in 5 countries on three continents, and in a previous career he worked in South America, Italy, and the French Riviera, and has traveled to 70 countries on six continents. He has worked from C/C++/Java developer to CTO, comfortable in 4 languages, and wants to become fluent in Japanese. Currently he is a consultant and provides training in Deep Learning and Android. Schedule • 6:30-7:00 - networking (pizza, beer) • 7:00-7:10 - announcements etc. • 7:10-8:00 - talk • 8:00-8:30 - more networking
- Scala-based ML framework at Netflix
Talk 1: Jeremy Smith, Boson: Machine Learning Framework for Netflix recommendations Abstract Boson is a Scala-based Machine Learning framework, which provides a high-level API and tools for ML pipelines at Netflix. It is designed to support interactive experimentation as well as to provide an easy path to running those models in Netflix's production environments. Boson's functionality is somewhat similar to SciKit Learn: dataset preparation, support for a wide range of model trainers and metrics, and an API for combining these steps. In addition, it also provides seamless integration with Netflix's offline data and production systems. In this talk we will go into the details how we are using Scala to make the offline ML training pipelines efficient. Speaker Bio Jeremy Smith is a Senior Software Engineer in the Algorithms Engineering group at Netflix, where he works on building production-quality machine learning pipelines and libraries to support research efforts. Previously, he led the Data Engineering team at Acorns, where he worked on building high-scale Scala microservices with Finagle, distributed data processing and streaming applications with Spark, and data warehouse infrastructure tools with Scala and AWS. As a Scala enthusiast, Jeremy also works to evangelize functional programming techniques and typelevel approaches, and is active in the open source Scala community. Talk 2: Hua Jiang, Building the Continue Watching model using Boson Abstract If there was ever a single row interface to Netflix, it has to be the Continue Watching row. On any given day, based on planetary motions, the alignment of stars and new content launches, the CW row accounts for a large fraction of user plays. Behind the CW row sits a machine learning title ranking and row positioning model. More details about the details of the ML model can be found here https://medium.com/netflix-techblog/to-be-continued-helping-you-find-shows-to-continue-watching-on-7c0d8ee4dab6 . In this talk, we open the can of worms that is the infrastructure that sits behind the CW models. We will discuss how we used Boson to implement its model training pipeline. Speaker Bio Hua Jiang received the Ph.D. degree in electrical engineering from the University of Minnesota, Twin Cities, in 2012. He was with the Design Group of Synopsys Inc. and the Data Infrastructure group, LinkedIn Corporation. He is a Senior Software Engineer at the Algorithms Engineering group of Netflix Inc. His work includes building machine learning infrastructure and exploring for novel computational paradigms to accommodate fast-growing machine learning needs. Schedule • 6:30-7:00 - networking (pizza, beer) • 7:00-7:10 - announcements etc. • 7:10-8:00 - talk • 8:00-8:30 - more networking
- Gabriel Claramunt, All About a Fold
Gabriel Claramunt, All About a Fold Abstract Folds are the bread and butter of functional programming, but what are they, really? What do they mean? Let's take a look how folds encode structural recursion. We'll move beyond folding over lists by generalizing to any data structure, and in the process, we'll unravel the secrets behind folding. video (https://www.youtube.com/watch?v=AAGBfOa2fnY&feature=youtu.be) Short Bio Gabriel was a happy enterprise developer until he found Scala, fell in love with FP, ruining his life. He has written software for a wide range of businesses, from small startups to Fortune 500 companies and Wall Street banks. After roaming around the Americas, he settled in his home country of Uruguay, where he founded Scalents, a Scala/FP consulting company Schedule • 6:30-7:00 - networking (pizza, beer) • 7:00-7:10 - announcements etc. • 7:10-8:00 - talk • 8:00-8:30 - more networking
- Sergei Winitzki, Declarative concurrent programming with Join Calculus
Sergei Winitzki, Declarative concurrent programming with Join Calculus Abstract Abstract: I give an introduction to Join calculus, a declarative formalism for concurrent programming. Join Calculus is a development of Pi-calculus that is higher-level and easier to use in practice. Join Calculus radically improves upon well-known concurrency paradigms such as Actors or CSP. I explain how Join Calculus emerges if we want to improve the Actor model by making actors type-safe, stateless, and automatically managed. I am developing `Chymyst`, a new open-source implementation of Join Calculus as an embedded DSL in Scala. I show concise and fully declarative Chymyst solutions for classic concurrency problems such as the "dining philosophers" or recursive "fork/join". Short Bio Sergei Winitzki is a theoretical physicist turned software engineer, passionate for functional programming, functional type theory, and declarative domain-specific languages. Schedule • 6:30-7:00 - networking (pizza, beer) • 7:00-7:10 - announcements etc. • 7:10-8:00 - talk • 8:00-8:30 - more networking Attention please The company will want you to sign an NDA.
- Ramon Lawrence,Roland Lee, Optimizing Scala Performance at the Data Access Layer
Abstract Most application performance and scale problems are due to inefficient database access. Heimdall Data is a data access layer providing Scala developers 1) SQL auto-caching and auto-invalidation, 3) Automated database failover and 4) Database Firewall. This all-in-one platform requires ZERO application code changes and is database vendor neutral (e.g. MySQL, Postgres, Oracle, SQL Server) AutoBio Dr. Ramon Lawrence is VP of Engineering at Heimdall Data and an associate professor at the University of British Columbia, Canada. He has a Ph.D. in Computer Science with a research focus in database systems. His research and development activities have produced software systems for data virtualization and querying NoSQL databases. Roland Lee's background is in application networking. He has been a developer and product manager in various startups and large companies. All through his career, his industry focus has been to increase the performance of Internet user data. Schedule • 6:30-7:00 - networking • 7:00-7:10 - announcements etc. • 7:10-8:00 - talk • 8:00-8:30 - networking