Exam Objectives Download Exam PDF Questions Answers Popular PMI Exam Guide for free, PMI-001 Cert Download400-251 pdf | Questions Answers Vendor: Cisco Exam Code: 700-020 Exam Name: Cisco Video Sales Essentials VSE Version: DemoQUESTION 1 What is a function of an endpoint? A. To act as a traffic cop for network communication. B. To provide an audio and video interface for the user. C. To join 3 or more participants in a meeting. D. To schedule calls. Correct Answer: B QUESTION 2 Which call control solution 700-020 dumps supports messaging, meeting and calling? A. Spark B. UCM C. Expressway D. HCS Correct Answer: A QUESTION 3 What is a common manufacturing industry need? A. Building guest loyalty through customer satisfaction. B. Offering more ways for students to connect to experts. C. Addressing increased global competition. D. Simplifying personal services for customers. Correct Answer: D QUESTION 4 What is a unique feature of Spark? A. Firewall traversal for premise-based solutions. B. Persistent content available to room participants. C. Advanced video routing on video-only networks. D. Support of unified communications pass4itsure with contact center. Correct Answer: B QUESTION 5 According to Gartner, how much technology spending will by outside of IT by the year 2020? A. 50% B. 75% C. 85% D. 90% Correct Answer: D QUESTION 6 What is at the center of collaboration? A. People B. PlacesC. Millennials D. Meetings Correct Answer: A QUESTION 7 What is a function of a recording solution? A. To act as a traffic cop for network communication. B. To schedule calls. C. To provide an audio and video interface for the user. D. To share lectures, training sessions, meetings and events on demand. Correct Answer: D QUESTION 8 Which management solution works with endpoints registered to UCM, VCS and Expressway? A. TMS B. CMA C. CMR D. Prime Correct Answer: A QUESTION 9 Which on-premise call control solution supports unified communications and contact center? A. Expressway B. UCM C. HCS D. Spark Correct Answer: B QUESTION 10 Which conferencing solution is designed for messaging, meeting, calling and persistent content sharing? A. CMR B. Cisco Meeting Server C. Telepresence Server D. Spark Correct Answer: B QUESTION 11 What can a Cisco solution enable an Education pass4itsure Industry customer to do? A. Let citizens join meetings, share applications, and use video. B. Accommodate evolving student learning styles through mobile video applications. C. Make experts or specialists available face-to-face even when they are not at the same location as the purchaser. D. Gain visibility into and streamline the supply chain. Correct Answer: B QUESTION 12Which endpoint provides MB6-898 dumps the highest quality and most natural meeting experience? A. MX200 B. MX800 C. SX10 D. IX5000 Correct Answer: D Scala.sphere.it

A 3-day conference aimed to immerse us into

Scala Dev Tools

April 15-17, 2018 | Kraków, Poland Get tickets

About the conference

This is a unique event devoted to important topic for every Scala Software Developer - Dev Tools.

Our aim is to show how they can facilitate effective development of Scala-based systems, how they are written, and to discuss what could still be improved.

Agenda

Special 2-day workshop, April 12-13th

Day 1 - Sunday

Day 2 - Monday

Day 3 - Tuesday

The Advanced Type Mechanics Course from Propensive

The Advanced Type Mechanics Course is the most comprehensive study of the Scala Type System ever undertaken. Building on over a decade of experience with Scala, Jon Pretty will break the Scala typechecker down into composable low-level building-blocks, which will liberate users into being able write and understand type-level code with ease.

Attendees to the course will finish with a good practical understanding of every aspect of the Scala typesystem, and will develop an ability to see the type system in a new light, as a set of tools for writing safe, type-level computations, and designing expressive APIs which combine the strength of the type system with the flexibility of type inference, to enforce programming constraints intuitively. Although it is not a specific goal, Advanced Type Mechanics will teach the type system in enough detail for a competent developer to reimplement the majority of its functionality from scratch.

The course takes place over two full days, alternating between taught sections, and worked examples which offer a combination of extensive familiarization with fundamental type-system concepts, and real-world examples which build upon them. It focuses purely on features of the Scala language. It does not touch upon the specifics of Shapeless or any other Typelevel libraries, though it will give attendees the means to understand how they work effortlessly. Knowledge of category theory or formal logic is not relevant to the course.

More information and registration are here

9:00 to 17:00

ScalaSpree

Description you can find here.

Hosted by ScalaCenter. Free entrance. Registration here.

10:00 to 18:00

Scala Bridge - workshops for women

A gentle introduction to the world of Scala programming language in which everybody can find a place for themselves. We do not require any great knowledge of programming or information theory, only basic knowledge in the world of computers and your own computer. We will try to match the pace of the workshop to each participant as much as possible.

The workshops will last around 8 hours with a break for dinner and we will try to all the basics during that time which will allow everyone to succesfully continue the adventure with programming in Scala. Precise information on the plan and what is necessary for the preparation will be given before the workshop.

Main host: Tomasz Godzik. Free entrance. More info about Scala Bridge idea here.

Registration here

10:00 to 18:00

TDDing Functional Web Apps

Get some practical overview of the TDD approach & Functional Programming by creating a multiplayer Pac-Man game server.

- First steps in Scala (sbt, wartremover, scalafmt). - Test Driven Development (scalatest, baby steps, starting with the game logic and moving towards HTTP). - Purely functional approach (separated data and behaviors, no exceptions, ADTs, Options). - Modeling using immutable structures. - Making impossible states impossible. - Using function composition. - Using Monix Atomic to handle state. - Separate concerns by using functions as input parameters.

Requirements: - Familiarity with basic Scala syntax (e.g. first 2 weeks of Functional Programming Principles in Scala or Scala Tutorial) - Please bring your laptop with Scala enabled environment. If you have problems setting it up, please use contact page at http://www.michalplachta.com

Host: Michał Płachta, Level: Beginner, Free entrance. Registration here.

10:00 to 14:00

Slick cats - how to make your pets manage your data

Slick is a modern database query and access library for Scala. It allows you to work with stored data almost as if you were using Scala collections while at the same time giving you full control over when a database access happens and which data is transferred. (http://slick.lightbend.com)

Cats is a library which provides abstractions for functional programming in the Scala programming language. The name is a playful shortening of the word category. (https://typelevel.org/cats/)

During this workshop you will be able to get some practical knowledge of how to manage dirty database operations in a clean and elegant approach using functional programming. Workshop is aimed at beginners starting their journey with Scala willing to know how to create elegant persistence layer in their applications. Workshop will consist of a bit of technical introduction followed by series of exercises based on real world problems that occur in typical projects. For workshop please bring your laptop with configured Scala environment.

Hosts: Szymon Tracz and Bartosz Radzyński, Free entrance, Registration here


14:15 to 17:15

Registration


8:00 to 9:00

Conference Opening in Main Chamber


9:00 to 9:05

KEYNOTE: Present/future vision for data+AI

Presented by Anthony Stevens
Anthony Stevens IBM
9:05 to 9:35

KEYNOTE: Reactive is a Product


The Reactive Manifesto was released almost 4 years ago, and while many teams and companies have adopted its principles, many are still unsure how to go about the work to implement resilience and elasticity. Who on a team should advocate for the work, define the requirements, establish success criteria and more? And how should those individuals interact with other team members to set priorities and drive the implementations? In this talk, I will go through practices I have successfully established and enabled to address these issues, and provide a road map for you to do the same.
Jamie Allen
9:40 to 10:10

KEYNOTE: Tools of the Mind


Tools are a force multiplier, without them we would still be toggling code into machines with switches. Tooling is powerful and we use them every day to empower us. Rather than focusing on software tooling we will explore mental tooling that will help to improve your productivity, happiness and career prospects.
Rory Graves Ensime
10:15 to 10:45

Tools: I see what you did there: Incrementalism and Inference in Build Tools


Build tools are incremental execution engines for the decomposed and dependent steps of taking your project from its base inputs, all the way through to an output like a deploy binary, a test run, or a loaded repl. Incremental execution, ie: using languages or frameworks to track dependencies and minimize the amount of re-execution necessary after inputs have changed (while avoiding associated overheads), is a well studied problem. Given that, why have build systems not yet been “”solved”” once and for all? This talk will discuss the tradeoffs involved in build tool execution models and what they mean for our users. It will also focus on solved and open questions in systems like Bazel, Mill, Pants, and others.
Stu Hood Twitter
11:00 to 11:40

The bytecode we all runnin'


Do you know what output is produced when scalac slowly does it’s deed? Have you ever wondered how to write code that will be favorable for your JVM? Should we sacrifice our fancy Typelevel or FP constructs just to make JIT gods happy? Let’s dive deep into the Scala bytecode.
Krzysztof Romanowski VirtusLab
11:50 to 12:20

sbt 1


sbt 1 is finally released. Let's go over the progress in 1.x series like sbt server and slash syntax,
and our current efforts around increasing contributions.
We will also share some of the ideas future developments in 1.x.
Dale Wijnand & Eugene Yokota Lightbend, Inc.
12:30 to 13:00

Lunch Break


13:00 to 14:00

5 things you need to know about Scala compilation


We all love Scala, but the one aspect we have a hard time accepting are long compile times. It’s not uncommon for a project to experience compilation times of a handful of minutes, if not worse. On top of that, compilation times are unpredictable, depending on a combination of language features, external libraries, and type annotations. A single line change may increase compilation times ten fold.

Don’t bow to the compiler and accept long compilation times. Rather, understand how the compiler works and optimize your usage of Scala to compile faster!
Iulian Dragos Triplequote
14:00 to 14:40

Build Server Protocol and new IDEAs


(joint talk - Justin Kaeser & Jorge Vicente Cantero) Abstract: "LSP has gained significant traction with implementation for over 25 languages and most major editors. However, LSP does not specify how language servers communicate with build tools. Currently, every IDE and language server must implement custom integrations for multiple build tools in order to extract compilation information such as classpaths and source directories. The Build Server Protocol is an attempt to formalize the communication between language servers and build tools in order to provide a seamless workflow when importing a project in your IDE or editor. In this talk, we explain the motivation behind BSP and its current implementations in both clients (IDEs) and servers (build tools). We zoom on in how BSP is being implemented in Intellij, what's its state of the art and how it can simplify its integrations with JVM-based build tools like sbt, bloop, CBT, Maven or Gradle."
Justin Kaeser & Jorge Vicente Cantero
14:50 to 15:30

Integrating IDEs with Dotty, the experimental Scala compiler


A great programming language should provide a great developer experience! This is why Dotty comes built-in with IDE support that is designed to be easy to use, robust and extensible. In this talk I’ll describe the technologies used to implement this. I will also describe some of the planned future improvements: ultimately, we would like the compiler to become much better at helping you write correct programs instead of just complaining when you make mistakes.
Guillaume Martres EPFL
15:45 to 16:25

Bridging the tooling gap with Scala.js


Scala.js is a tool for compiling your Scala code to JavaScript. This enables writing type-safe and robust front-end application, but have you ever considered what it can do for Scala tooling? In this talk we’ll see how Scala.js can bridge the gap between the Scala-based and the JavaScript-based tools we use every day as programmers.
Gabriele Petronella buildo
16:35 to 16:50

Enabling the first step


They say “a journey of a thousand miles begins with a single step”. Yet we’re so busy with so many things in our tools, that we tend to forget about this simple truth, even to forget that there is the first step. You know what? The Scala team at JetBrains is hardly an exception! However, we rolled up our sleeves and dared to re-evaluate the experience of getting started with Scala in IntelliJ IDEA. In this presentation, we share the resulting insights, using our work as a case study.
Pavel Fatin JetBrains
16:55 to 17:10

Spark with Ammonite and coursier


With spark support about to land in Ammonite, we can now resort to both Ammonite and coursier to handle everything spark, in a more lightweight and reproducible fashion. This talk will discuss the subtleties of the spark support in both tools. We’ll see how they can be used to handle and run spark jobs, and the benefits of doing so.
Alexandre Archambault Criteo
17:10 to 17:25

Lessons to Scala Native from Kotlin/Native


I’m Alexander Podkhalyuzin, ex-lead of Scala plugin for IntelliJ IDEA and this year for my personal growth I left Scala world for Kotlin. I really love Scala and miss it very much, that’s why I want to share new knowledges, which I learnt from Kotlin/Native. This talk will cover native and cross-platform dev modes. We are going to discuss current pain points in (Kotlin+Scala)/Native worlds and possible solutions. We recently did pre-alpha preview of Kotlin/Native support in CLion, so IDE discussion around Scala is going to be the hottest part with probable promises from JetBrains. Required Knowledge Some experience in native (C/C++?) development would be great. Learning Objectives This is talk about two preview technologies and possible future adoption of both of them. How big can it be and what tooling is required to have full adoption for that. I want to give more inspiration to Scala Native team to invest more resources into that as this technology is actually huge.
Alexander Podkhalyuzin JetBrains
17:40 to 18:20

After Party


18:30 to **

KEYNOTE: Blooming Tools!


For as long as Scala has existed, its tooling support has always lagged behind the development experience enjoyed by developers in languages like Java, despite the valiant efforts of many of Scala’s great contributors over the years. In recent months, though, plans have been afoot for the Scala Center to take a leading role in supporting and encouraging work on Scala’s tooling, in particular the Language Server Protocol and related Scala-specific protocols. So what went wrong for Scala’s first fifteen years? What is being done to turn that around? And what can we hope for in the future? Jon will give a brief history of tooling in Scala, an explanation of the work that is currently being done to improve it, and a glimpse of the excitement the future may hold, in which a rich ecosystem of tools can bloom!
Jon Pretty Propensive
9:00 to 9:40

SemanticDB for Scala developer tools


SemanticDB is a data schema for semantic information about code. It can model many Scala language features that are relevant for developer tools, such as resolved names and type signatures. SemanticDB can be persisted and consumed in the form of protobuf messages, SQL or JSON depending on your application’s needs. The benefits of this data-driven approach include improved testability, interoperability, composability and performance. In this talk, you will learn about the applications and limitations of SemanticDB. I will share my experiences using SemanticDB to build a wide range of experimental tools including linters, refactoring tools, language servers, online code browsers and documentation generators. Expect many demos. This talk is suitable for a wide audience. Scala newcomers will take a sneak peek into new exciting tooling. Tool tinkerers will learn new ways to develop tools for Scala.
Ólafur Páll Geirsson Scala Center
9:55 to 10:35

The perfect build tool


Bazel, sbt, CBT, mill, bloop... What makes any of them great? It depends on you. We write our own build tool in this talk. In the process we compare technical aspects of existing tools and present a mental framework for comparison. We'll focus a bit more on CBT but this is not a sales pitch and tries to uncover trade offs to empower your own judgement.
Jan Christopher Vogt Symbiont.io
10:45 to 11:25

Using Bazel to build Scala

"In the Scala community we very often discuss code correctness. We leverage the type system to write programs we can reason about. We let the compiler validate as much of our programs as possible. We worry about correctness for our programs. But what our builds? Often overlooked, our builds are just as important as our programs. Build breakages, nondeterminisms, dependency issues, and other peculiarities occasionally appear. We fix them-- often with a quick fix or trick-- but rarely address the root cause of the problem. Minor nuisances for small programs can quickly become huge time sinks for large application codebases. Enter Bazel: a fast, scalable, multi-language and extensible build system. Bazel is built with both build correctness and build speed in mind. Let's explore how Bazel gives us correct builds and what this means for Scala programs. We'll learn how Bazel is different from SBT. We will also discuss how this is relevant to Stripe and the work we're doing in this space."
Andy Scott Stripe
11:40 to 12:20

Making third-party macro support in IntelliJ easier

Mikhail Mutcianko JetBrains
12:30 to 13:00

Lunch Break


13:00 to 14:00

Designing libraries for source and binary compatibility


We have all experienced at least once the dismay of trying to use two libraries, only to discover that they are not binary compatible with each other. The good news is: we can avoid this kind of situation, if we correctly design our libraries and their APIs so that we can *evolve* them later in binary compatible ways. In this talk, we will first explain what source and binary compatibility are, why they matter, and when. Then, we will give practical advice on designing APIs that can be evolved in backward compatible ways, as well as recommendations for versioning libraries.
Sébastien Doeraene EPFL
14:00 to 14:40

Meet bloop and get more productive with Scala


Bloop is a command-line tool for fast edit/compile/test workflows with a focus on making you a more productive Scala developer. In this talk, I explain how developers can be faster at writing Scala code no matter what build tool they use (sbt, Maven, Gradle, Bazel), and how different instances of both build tools and IDEs alike can reuse bloop and benefit from a performance boost. Next, we’ll dive into several use cases and explain other Scala-related productivity tricks.
Martin Duhem Scala Center
14:50 to 15:30

Enforce best coding practices with Scalafix linting


Scalafix is rewrite and linting tool for Scala. There’s a continuous process of adding new rules that help enforce best functional programming practices. I will show how the most important rules work and how they were implemented. I will also share my experience porting Wartremover rules to Scalafix and compare the two. In this talk, you will learn how to implement a scalafix linter rule, from idea, implementation, testing and release. There will be also a few words about what Scalafix currently can and can’t do and what kind of problems it solves.
Vladimir Polushin Open source contributor – Scala
15:45 to 16:25

Making Scalac faster - how hard can it be?


Improving the performance of ScalaC is an ongoing mission by a number of people. Optimising an application as complex and subtle as the Scala compiler is an interesting adventure. This talk is a fun romp through the world of compilers, performance measurement, optimisation and bytecode. On this journey we will highlight the unexpected challenges, opportunities and skeletons so far discovered.

16:35 to 17:15

Discussion Panel


17:30 to 18:30

Conference Closing in Main Chamber


18:30 to 18:40

CloudSphere - a small companion event to Sphere.IT

More details here

19:15 to 21:45

FrontendSphere - a small companion event to Sphere.IT

More details here

19:15 to 21:45

Keynote speakers

Rory Graves
Rory Graves Ensime
Jon Pretty
Jon Pretty Propensive

Rory Graves

Bio:
Rory has spent much of his career fixing other peoples code. He is passionate about creating better and spends his life fighting to find the balance between cleanness, maintainability and performance. He enjoys contributing to open source and has a weird weird habit of drive-by optimisation. Right now he is focused on compiler performance, involved in both ScalaC and RSC. Outside of coding he gives tours of a windmill, is a Toastmaster and teaches his son about robots.

KEYNOTE Topic:
Tools of the Mind

Tools are a force multiplier, without them we would still be toggling code into machines with switches. Tooling is powerful and we use them every day to empower us. Rather than focusing on software tooling we will explore mental tooling that will help to improve your productivity, happiness and career prospects.

Topic:
Making Scalac faster – how hard can it be?

Improving the performance of ScalaC is an ongoing mission by a number of people. Optimising an application as complex and subtle as the Scala compiler is an interesting adventure. This talk is a fun romp through the world of compilers, performance measurement, optimisation and bytecode. On this journey we will highlight the unexpected challenges, opportunities and skeletons so far discovered.

Rory Graves Ensime

Jon Pretty

Bio:
He is a longstanding contributor to the Scala community, having launched the first commercial applications written in Scala over ten years ago. He is best known for his work on Rapture, and his contributions to Typelevel Scala.

Topic:
Blooming Tools!

Abstract:
For as long as Scala has existed, its tooling support has always lagged behind the development experience enjoyed by developers in languages like Java, despite the valiant efforts of many of Scala’s great contributors over the years. In recent months, though, plans have been afoot for the Scala Center to take a leading role in supporting and encouraging work on Scala’s tooling, in particular the Language Server Protocol and related Scala-specific protocols.

So what went wrong for Scala’s first fifteen years? What is being done to turn that around? And what can we hope for in the future? Jon will give a brief history of tooling in Scala, an explanation of the work that is currently being done to improve it, and a glimpse of the excitement the future may hold, in which a rich ecosystem of tools can bloom!

Jon Pretty Propensive

The speakers

Alexandre Archambault
Alexandre Archambault Criteo
Sébastien Doeraene
Sébastien Doeraene EPFL
Iulian Dragos
Iulian Dragos Triplequote
Martin Duhem
Martin Duhem Scala Center
Pavel Fatin
Pavel Fatin JetBrains
Stu Hood
Stu Hood Twitter
Justin Kaeser
Justin Kaeser JetBrains
Guillaume Martres
Guillaume Martres EPFL
Mikhail Mutcianko
Mikhail Mutcianko JetBrains
Ólafur Páll Geirsson
Ólafur Páll Geirsson Scala Center
Gabriele Petronella
Gabriele Petronella buildo
Alexander Podkhalyuzin
Alexander Podkhalyuzin JetBrains
Vladimir Polushin
Vladimir Polushin Open source contributor – Scala
Krzysztof Romanowski
Krzysztof Romanowski VirtusLab
Andy Scott
Andy Scott Stripe
Dale Wijnand
Dale Wijnand Lightbend, Inc.
Jan Christopher Vogt
Jan Christopher Vogt Symbiont.io
Jorge Vicente Cantero
Jorge Vicente Cantero Scala Center
Eugene Yokota
Eugene Yokota Lightbend, Inc.

Alexandre Archambault

Bio:
Original author of coursier. shapeless and Ammonite contributor.

Topic:
Spark with Ammonite and coursier

Abstract:
With spark support about to land in Ammonite, we can now resort to both Ammonite and coursier to handle everything spark, in a more lightweight and reproducible fashion. This talk will discuss the subtleties of the spark support in both tools. We’ll see how they can be used to handle and run spark jobs, and the benefits of doing so.

Alexandre Archambault Criteo

Sébastien Doeraene

Bio:
Sébastien Doeraene is a compiler/runtime systems hacker and a Scala enthusiast. He is a PhD student at EPFL in the programming methods laboratory (LAMP, also known as the Scala team) led by Martin Odersky, where he designs and develops Scala.js. He holds bachelor and master degrees 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 rides around on a unicycle.

Topic:
Designing libraries for source and binary compatibility

Abstract:
We have all experienced at least once the dismay of trying to use two libraries, only to discover that they are not binary compatible with each other. The good news is: we can avoid this kind of situation, if we correctly design our libraries and their APIs so that we can *evolve* them later in binary compatible ways.

In this talk, we will first explain what source and binary compatibility are, why they matter, and when. Then, we will give practical advice on designing APIs that can be evolved in backward compatible ways, as well as recommendations for versioning libraries.

Sébastien Doeraene EPFL

Iulian Dragos

Bio:
He dreams about a world where the Scala programming language is the default choice in the enterprise. He learned Scala by writing the compiler backend for it during his PhD at EPFL, back in 2004, and he was the first employee of Lightbend (formerly Typesafe). In nov. 2016 he co-founded Triplequote, with the mission to empower Scala teams through great development tools, starting with a parallel compiler. Iulian is a frequent speaker at conferences and actively contributing to several open-source projects.

Topic:
5 things you need to know about Scala compilation

Abstract:
We all love Scala, but the one aspect we have a hard time accepting are long compile times. It’s not uncommon for a project to experience compilation times of a handful of minutes, if not worse. On top of that, compilation times are unpredictable, depending on a combination of language features, external libraries, and type annotations. A single line change may increase compilation times ten fold.

Don’t bow to the compiler and accept long compilation times. Rather, understand how the compiler works and optimize your usage of Scala to compile faster!

Iulian Dragos Triplequote

Martin Duhem

Bio:
Martin Duhem is a software engineer at Scala Center, where he works on compilers and developer tools.

Topic:
Meet bloop and get more productive with Scala

Abstract:
Bloop is a command-line tool for fast edit/compile/test workflows with a focus on making you a more productive Scala developer. In this talk, I explain how developers can be faster at writing Scala code no matter what build tool they use (sbt, Maven, Gradle, Bazel), and how different instances of both build tools and IDEs alike can reuse bloop and benefit from a performance boost. Next, we’ll dive into several use cases and explain other Scala-related productivity tricks.

Martin Duhem Scala Center

Pavel Fatin

Bio:
Programming enthusiast, technology advocate. IntelliJ Scala plugin developer at JetBrains. You can check out his GitHub here.

Topic:
Enabling the first step

Abstract:
They say “a journey of a thousand miles begins with a single step”. Yet we’re so busy with so many things in our tools, that we tend to forget about this simple truth, even to forget that there is the first step. You know what? The Scala team at JetBrains is hardly an exception! However, we rolled up our sleeves and dared to re-evaluate the experience of getting started with Scala in IntelliJ IDEA. In this presentation, we share the resulting insights, using our work as a case study.

Pavel Fatin JetBrains

Stu Hood

Bio:
Stu Hood has been involved with the Scala ecosystem for about 8 years, and has been contributing to the Pants build system for 3 of those. He helps the engineers at Twitter build, grow, and prune many millions of lines of Scala code, but will happily proselytize Rust if you let him.

Topic:
Tools: I see what you did there: Incrementalism and Inference in Build Tools

Abstract:
Build tools are incremental execution engines for the decomposed and dependent steps of taking your project from its base inputs, all the way through to an output like a deploy binary, a test run, or a loaded repl.

Incremental execution, ie: using languages or frameworks to track dependencies and minimize the amount of re-execution necessary after inputs have changed (while avoiding associated overheads), is a well studied problem. Given that, why have build systems not yet been “”solved”” once and for all?

This talk will discuss the tradeoffs involved in build tool execution models and what they mean for our users. It will also focus on solved and open questions in systems like Bazel, Mill, Pants, and others.

Stu Hood Twitter

Justin Kaeser

Bio: 
Justin believes in “”Tools before Rules””: automating the development toolchain to remove the pain of dealing with institutional processes. At day he works on this goal as part of the IntelliJ Scala plugin team. At night he goofs off.

Topic:
Build Server Protocol and new IDEAs
(joint talk with Jorge Vicente Cantero)

Abstract:
“LSP has gained significant traction with implementation for over 25 languages and most major editors. However, LSP does not specify how language servers communicate with build tools. Currently, every IDE and language server must implement custom integrations for multiple build tools in order to extract compilation information such as classpaths and source directories. The Build Server Protocol is an attempt to formalize the communication between language servers and build tools in order to provide a seamless workflow when importing a project in your IDE or editor. In this talk, we explain the motivation behind BSP and its current implementations in both clients (IDEs) and servers (build tools). We zoom on in how BSP is being implemented in Intellij, what’s its state of the art and how it can simplify its integrations with JVM-based build tools like sbt, bloop, CBT, Maven or Gradle.”

Justin Kaeser JetBrains

Guillaume Martres

Bio:
Guillaume is PhD student at EPFL working on Dotty, the new
Scala compiler.

Topic:
Integrating IDEs with Dotty, the experimental Scala compiler

Abstract:
A great programming language should provide a great developer experience! This is why Dotty comes built-in with IDE support that is designed to be easy to use, robust and extensible. In this talk I’ll describe the technologies used to implement this. I will also describe some of the planned future improvements: ultimately, we would like the compiler to become much better at helping you write correct programs instead of just complaining when you make mistakes.

Guillaume Martres EPFL

Mikhail Mutcianko

Bio:
He is a developer at JetBrains, primarily focused on supporting scala.meta API in IntelliJ IDEA.

Topic:
Making third-party macro support in IntelliJ easier

Abstract:
TBA

Mikhail Mutcianko JetBrains

Ólafur Páll Geirsson

Bio:
Ólafur Páll Geirsson is a software developer at the Scala Center where he works on developer tools. He is the author of scalafmt and scalafix.

Topic:
SemanticDB for Scala developer tools

Abstract:
SemanticDB is a data schema for semantic information about code. It can model many Scala language features that are relevant for developer tools, such as resolved names and type signatures. SemanticDB can be persisted and consumed in the form of protobuf messages, SQL or JSON depending on your application’s needs. The benefits of this data-driven approach include improved testability, interoperability, composability and performance.

In this talk, you will learn about the applications and limitations of SemanticDB. I will share my experiences using SemanticDB to build a wide range of experimental tools including linters, refactoring tools, language servers, online code browsers and documentation generators. Expect many demos.

This talk is suitable for a wide audience. Scala newcomers will take a sneak peek into new exciting tooling. Tool tinkerers will learn new ways to develop tools for Scala.

Ólafur Páll Geirsson Scala Center

Gabriele Petronella

Bio:
Gabriele is co-founder of buildo, where he’s a software engineer, working with Scala, JavaScript and Swift. He founded the Scala User Group in Milan and he’s an organizer of Scala Italy, the Italian conference on Scala. In the – rare – free time, you’ll find him on a plane or at the basketball court.

Topic:
Bridging the tooling gap with Scala.js

Abstract:
Scala.js is a tool for compiling your Scala code to JavaScript.
This enables writing type-safe and robust front-end application, but have you ever considered what it can do for Scala tooling?
In this talk we’ll see how Scala.js can bridge the gap between the Scala-based and the JavaScript-based tools we use every day as programmers.

Gabriele Petronella buildo

Alexander Podkhalyuzin

Bio:
Alexander graduated from Saint-Petersburg State University in 2010, department of mathematics, he has a lot of prizes from international and regional mathematical competitions. In 2008, Alexander started to work for JetBrains, where he became Scala plugin for IntelliJ IDEA team leader. From 2012 he started teaching Scala in Saint-Petersburg Academic University. Starting from 2017 he left Scala plugin team to start working on Kotlin/Native IDE support.

Topic:
Lessons to Scala Native from Kotlin/Native

Abstract:
I’m Alexander Podkhalyuzin, ex-lead of Scala plugin for IntelliJ IDEA and this year for my personal growth I left Scala world for Kotlin. I really love Scala and miss it very much, that’s why I want to share new knowledges, which I learnt from Kotlin/Native. This talk will cover native and cross-platform dev modes. We are going to discuss current pain points in (Kotlin+Scala)/Native worlds and possible solutions. We recently did pre-alpha preview of Kotlin/Native support in CLion, so IDE discussion around Scala is going to be the hottest part with probable promises from JetBrains.

Required Knowledge
Some experience in native (C/C++?) development would be great.

Learning Objectives
This is talk about two preview technologies and possible future adoption of both of them. How big can it be and what tooling is required to have full adoption for that. I want to give more inspiration to Scala Native team to invest more resources into that as this technology is actually huge.

Alexander Podkhalyuzin JetBrains

Vladimir Polushin

Bio:
Vladimir has worked on two Google Summer of Code projects, fastparse bytes and stalagmite for better case classes. He is a regular contributor to ENSIME and Scalafix.

Title:
Enforce best coding practices with Scalafix linting

Abstract:
Scalafix is rewrite and linting tool for Scala. There’s a continuous process of adding new rules that help enforce best functional programming practices.
I will show how the most important rules work and how they were implemented. I will also share my experience porting Wartremover rules to Scalafix and compare the two.

In this talk, you will learn how to implement a scalafix linter rule, from idea, implementation, testing and release. There will be also a few words about what Scalafix currently can and can’t do and what kind of problems it solves.

Vladimir Polushin Open source contributor – Scala

Krzysztof Romanowski

Topic:
The bytecode we all runnin’

Abstract
Do you know what output is produced when scalac slowly does it’s deed? Have you ever wondered how to write code that will be favorable for your JVM? Should we sacrifice our fancy Typelevel or FP constructs just to make JIT gods happy? Let’s dive deep into the Scala bytecode.

Krzysztof Romanowski VirtusLab

Andy Scott

Topic:
Using Bazel to build Scala

Abstract:
“In the Scala community we very often discuss code correctness. We leverage the type system to write programs we can reason about. We let the compiler validate as much of our programs as possible. We worry about correctness for our programs. But what our builds?

Often overlooked, our builds are just as important as our programs. Build breakages, nondeterminisms, dependency issues, and other peculiarities occasionally appear. We fix them– often with a quick fix or trick– but rarely address the root cause of the problem. Minor nuisances for small programs can quickly become huge time sinks for large application codebases.

Enter Bazel: a fast, scalable, multi-language and extensible build system. Bazel is built with both build correctness and build speed in mind. Let’s explore how Bazel gives us correct builds and what this means for Scala programs. We’ll learn how Bazel is different from SBT. We will also discuss how this is relevant to Stripe and the work we’re doing in this space.”

Andy Scott Stripe

Dale Wijnand

Bio:
I’m an active OSS contributor, typically in Scala, and an sbt maintainer at Lightbend. Interested in FP, software tooling, and API and library design.

 
Topic:
sbt 1

Abstract:
sbt 1 is finally released. Let’s go over the progress in 1.x series like sbt server and slash syntax, and our current efforts around increasing contributions.
We will also share some of the ideas future developments in 1.x.

Dale Wijnand Lightbend, Inc.

Jan Christopher Vogt

Bio:
Author of CBT, co-author of Slick, former member of Martin’s Scala team, pragmatic functional programmer with an appreciation for simplicity and appropriate design.

Topic:
The perfect build tool

Abstract:
Bazel, sbt, CBT, mill, bloop… What makes any of them great? It depends on you. We write our own build tool in this talk. In the process we compare technical aspects of existing tools and present a mental framework for comparison. We’ll focus a bit more on CBT but this is not a sales pitch and tries to uncover trade offs to empower your own judgement.

Jan Christopher Vogt Symbiont.io

Jorge Vicente Cantero

Bio:
Jorge Vicente Cantero is a devtools engineer at the Scala Center. He works on the core infrastructure of the Scala programming language, from the compilers (Scala and Zinc) to build tools (sbt, bloop) and more. He’s the Lead of the Scala Improvement Process and coordinates the Scala Platform. His focus is on making Scala developers more productive.

Topic:
Build Server Protocol and new IDEAs
(joint talk with Justin Keaser)

Abstract:
“LSP has gained significant traction with implementation for over 25 languages and most major editors. However, LSP does not specify how language servers communicate with build tools. Currently, every IDE and language server must implement custom integrations for multiple build tools in order to extract compilation information such as classpaths and source directories. The Build Server Protocol is an attempt to formalize the communication between language servers and build tools in order to provide a seamless workflow when importing a project in your IDE or editor. In this talk, we explain the motivation behind BSP and its current implementations in both clients (IDEs) and servers (build tools). We zoom on in how BSP is being implemented in Intellij, what’s its state of the art and how it can simplify its integrations with JVM-based build tools like sbt, bloop, CBT, Maven or Gradle.”

Jorge Vicente Cantero Scala Center

Eugene Yokota

Bio:
Eugene is a maintainer of sbt, and Tech Lead of Tooling team at Lightbend.
He enjoys long walks looking for Döner kebab, and functional programming.

Topic:
sbt 1

Abstract:
sbt 1 is finally released. Let’s go over the progress in 1.x series like sbt server and slash syntax, and our current efforts around increasing contributions.
We will also share some of the ideas future developments in 1.x.

Eugene Yokota Lightbend, Inc.

Other sphere.it events

React.sphere.it is a conference focused on Reactive Programming and Reactive System Design. Now in its 2nd Edition, it’s a perfect opportunity to meet and share knowledge with experts in this field.

Visit react.sphere.it

abc

Data.sphere.it is a conference devoted to data-centric systems and the technologies making them tick. Whether it is data engineering or AI application challenges – they all fit well in.

Visit data.sphere.it

Already <b>decided?</b>

Already decided?

You can register for your tickets today. The tickets also let you attend both sister events happening at the same time and venue (React.sphere.it & Data.sphere.it)

Get tickets

Practical info

Sponsorship

Please take a look at Sponsorship Offer

Getting around

From airport take taxi or train.
For checking public communication you can use jakdojade.pl

Main venue

The Opera of Kraków Lubicz 48 31-512 Kraków

Day of practice

There will be several workshops, hackathons and training on 15th of April. More details soon

The afterparty

We invite you to Browar Lubicz

We are powered by

Organizer

Virtus Lab

Platinum Sponsor

tesco

Gold Sponsors

JetBrains Scalac

Silver Sponsors

Propensive lightbend Stripe

Partners

scala center Ibm

Friends

Software Mill

Community Friends

KSUG

Media Partners

Cloudforum programistka.com No Fluff Jobs justjoin.it


Would you like to become a sponsor?

Code of Conduct

The following Code of Conduct is inspired by that from other prominent conferences such as ScalaDays or Scala eXchange.

ScalaSphere is dedicated to providing a harassment-free experience for everyone, regardless of gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, race, nationality, age or religion. We do not tolerate harassment of participants in any form. Please show respect for those around you. This applies to both in-person and online behavior.

All communication should be appropriate for a technical audience,

including people of many different backgrounds. Sexual language, innuendo, and imagery is not appropriate for any conference venue, including talks.

If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of staff immediately. If an individual engages in harassing behaviour, the ScalaSphere staff may take any action they deem appropriate, including warning the offender or expulsion from the event.
We expect all attendees to follow above rules during our ScalaSphere DevTools Summit.