Code BEAM Europe 2022
2022
List of videos

Flow Based Programming with Elixir and ALF | Anton Mishchuk | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Flow Based Programming with Elixir and ALF | Anton Mishchuk - Software Engineer ABSTRACT Flow-based Programming (FBP) is a 50-years-old idea of presenting an application as a network of independent processes (components) exchanging data via message passing. The Actor concurrency model in Erlang, GenServer abstraction, and powerful GenStage library make it extremely easy to implement FBP in Elixir. In the talk, I’m going to present the advantages of the approach for modelling the application layer of a program and provide examples using the ALF library I’ve created. OBJECTIVES Discuss a new-old paradigm for creating software applications -a flow-based programming approach - and present a framework for supporting the approach. AUDIENCE Engineers who are interested in different approaches for writing software applications. • Timecodes 00:00 - 09:15 - Flow-Based compony 09:16 - 12:50 - FBP Advantages 12:51 - 16:12 - FBP with Elixir 16:13 - 19:50 - Meet ALF 19:51 - 23:28 - ALF Components 23:29 - 26:21 - Example: Online TicTacToe game 26:22 - 34:16 - ALF Monitor 34:17 - 41:31 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Comparing the Actor Model & CSP Concurrency with Elixir & Clojure | Xiang Ji | Code BEAM Europe 22
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Comparing the Actor Model & CSP Concurrency with Elixir & Clojure | Xiang Ji - Senior Backend Engineer at Remote ABSTRACT One big selling point of the BEAM VM is its from-the-ground-up implementation of the Actor model. CSP, another concurrency paradigm, has gained a lot of traction via Go, while also being embraced by Clojure. There is shared heritage between Elixir & Clojure, as well as between Actor model & CSP. However, radical differences between BEAM and JVM inevitably lead to intriguing divergences. You'll gain a better understanding of these paradigms, and (hopefully) a bit more appreciation of what makes BEAM unique. OBJECTIVES Better understanding of the Actor model Better understanding of unique features of the BEAM VM (e.g. process memory space isolation, preemptive scheduling, soft real-time, independent generational garbage collection) Better understanding of CSP, of how concurrency challenges are approached in languages such as Go and Clojure. Better understanding of the similarities and differences between Elixir and Clojure. Better understanding of the strengths and weaknesses of the BEAM VM compared with other runtimes such as the JVM. AUDIENCE People who could benefit from more knowledge of the BEAM VM, with which they can become better Elixir/Erlang developers. People who want to learn more about the characteristics of and differences between concurrency paradigms. People who are curious about Go's/Clojure's approach to concurrency. People who are curious about the contrast between Elixir and Clojure, the BEAM VM and the JVM. • Timecodes 00:00 - 02:37 - Intro and Outline 02:38 - 06:34 - BEAM vs. JVM 06:35 - 09:25 - The Actor Model vs. CSP 09:26 - 16:27 - core async and CSP 16:28 - 18:39 - Other Potential Topologies with CSP 18:39 - 20:52 - Inversion of Control "Threads" with the Go Macro 20:53 - 25:36 - Project Loom and Further Resources • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Erlang for Untrusted Decentralized Systems | Andrew Thompson | Code BEAM America 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Erlang for Untrusted Decentralized Systems | Andrew Thompson - Author of Lager and Gen_SMTP ABSTRACT Erlang is commonly used for distributed systems on a trusted substrate (when all the nodes are run by a single party) but what about when multiple parties who don't necessarily trust each other want to work together? This talk will discuss some of the technologies Andrew has implemented at Helium to build distributed systems on an untrusted substrate at Helium including HoneyBadgerBFT, threshold cryptography, distributed key generation and peer to peer networking. OBJECTIVES Educate Erlang developers on the alternatives to traditional distributed systems development on the BEAM. AUDIENCE People interested in alternatives to distributed Erlang, decentralization, cutting edge cryptography or untrusted consensus systems. • Timecodes 00:00 - 02:05 - Intro 02:06 - 09:51 - Journey to Orleans 09:52 - 12:36 - Orleans Primer 12:36 - 18:51 - In Through the BEAM 18:52 - 22:13 - Up The Ladder 22:14 - 24:14 - Demo 24:15 - 30:25 - QnA 30:26 - 32:35 - Up The Ladder 32:36 - 39:00 - Demo 39:01 - 44:58 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Vaxine, the Rich CRDT Database for ElixirPhoenix Apps | James Arthur | Code BEAM America 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Vaxine, the Rich CRDT Database for ElixirPhoenix Apps | James Arthur - CEO and Founder of rich-CRDT database Vaxine ABSTRACT CRDTs are key ingredient for low latency, collaborative applications. However, typical backend applications require more from their database than just commutativity. Vaxine is a new database system developed in Erlang and Elixir, based on AntidoteDB, that extends CRDTs with invariant safety and makes a CRDT database easy to use from Elixir and Phoenix applications. This talk explains the rationale for a rich-CRDT database and introduces the open-source Vaxine system. OBJECTIVES Introduce the Vaxine system and help the audience understand when and how they might use it. AUDIENCE Developers, technical architects, data architects, database developers, collaborative application developers, Elixir/Phoenix developers, LiveView developers, ... • Timecodes 00:00 - 03:06 - Intro 03:07 - 06:41 - Local and Global Users 06:42 - 08:10 - CP + AP Systems 08:12 - 09:19 - Concurrent writes 09:20 - 10:49 - Referential integrity 10:50 - 11:24 - What Do We Want? 11:25 - 14:16 - Vaxine 14:17 - 15:54 - Composition and Compensations 15:55 - 21:40 - Reservations 21:41 - 22:59 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/2715... • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47e... See what's coming up at: https://codesync.global
Watch
LiveView & JavaScript: A Guide to (...) | Michal Gibowski & Hamza Belhaj | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ LiveView and JavaScript - A guide to achieving synergy | Michal Gibowski & Hamza Belhaj - Software Engineers at Andjaro ABSTRACT LiveView famously allows developers to create rich interactive web interfaces without writing any line of JavaScript. However, does this mean one should ditch JavaScript altogether? Of course not! Web apps require instant local interactions that should never depend on communication with the server, and JavaScript is here to stay. In this talk, we will go through built-in LiveView JS mechanisms, integration with AlpineJS, and how to effectively use LiveView together with full-blown frameworks like VueJS on the same page in scenarios where this makes sense. OBJECTIVES Teach participants how to: - use LiveView built-in JS commands, - use AlpineJS and have 2-way data binding between client and server, - use VueJS-based UI components on LiveView pages. AUDIENCE Beginning and intermediate web developers. • Timecodes 00:00 - 08:05 - Let's talk about LiveView 08:06 - 12:02 - Hook intro LiveView from Web Browser 12:03 - 18:27 - AlpineJS 18:28 - 25:05 - VueJS 25:06 - 31:28 - Steps of Starting VUEJS 31:29 - 41:19 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Slaying the Type Hydra, or How We Went (...) to None | Jesper Eskilson | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Slaying the Type Hydra, or How We Went from 12,000 Dialyzer Errors to None | Jesper Eskilson - Senior Engineer at Klarna ABSTRACT Have you ever tried running Dialyzer on a large Erlang project for the first time? Did you also get thousands of cryptic errors? Three years ago at Klarna we stood at 1.7MLOC with 12k Dialyzer errors. This is the point where you typically through up your hands and walk away. But we didn't. We fought. And now we are up to 1.72MLOC, but completely free of Dialyzer errors. This talk is about our fight, but not just the fun war stories. You will get a detailed plan for slaying the type Hydra, no matter how many heads it grows. OBJECTIVES The aim is to get people excited about fixing Dialyzer errors in large code bases, to convince them that it can be done, even when there are lots of errors. AUDIENCE Erlang/Elixir developers in general, and developers maintaining large and/or legacy systems in particular, who would like to run Dialyzer on their code, but are limited due to the number of existing errors in the code. • Timecodes 00:00 - 02:37 - Intro and KRED 02:38 - 04:01 - Why Dialyzer? 04:02 - 04:54 - Main Message 04:55 - 05:29 - About Me 05:30 - 06:45 - Principle 1: Automation 06:46 - 11:26 - Slaying the Type Hydra... 11:27 - 12:52 - Override Switch 12:53 - 15:58 - Principle 2: Understanding + KRED 15:59 - 29:42 - Common Problems 29:43 - 31:32 - General Advice + Recap 31:33 - 37:03 - Principle 3: Execution 37:04 - 44:34 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Learning Erlang and Elixir through Exercism and Advent of Code | Adolfo Neto | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Learning Erlang and Elixir through Exercism and Advent of Code | Adolfo Neto - Associate Professor at the Federal University of Technology and creator of Elixir Em Foco Podcast ABSTRACT There are several good free resources for learning Erlang and Elixir. In the past few months, I have been using Exercism and the discussions on Advent of Code problems (at Elixir Forum and Erlang Forums) to learn more about those two languages. These two learning resources provide a very active way of learning the basics of these languages. In this talk, I will discuss some of what I learned recently and I will also say which one I think is the best option for beginners. OBJECTIVES Viewers will understand the fundamental differences between Exercism and Advent of Code and will be able to choose which one (or both) will they use for their own learning. AUDIENCE Programmers, either newbies or intermediate, who want to learn the best ways of solving problems using Elixir or Erlang. • Timecodes 00:00 - 02:17 - Intro 02:18 - 03:44 - Which are the Difficulties in Learning Elixir and Erlang? 03:45 - 05:45 - What Helps? 05:46 - 06:42 - Which is most used? 06:43 - 12:45 - What is the Advent of Code? 12:46 - 16:57 - What is Excercism? 16:58 - 19:51 - Good/Bad in AoC 19:52 - 21:23 - Good/Bad in Exercism 21:24 - 24:27 - What have I learned? 24:28 - 25:22 - How to Use AoC to Learn Erlang and Elixir? 25:23 - 28:39 - How to Use Excercism to Learn Erlang and Elixir? 28:40 - 33:11 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
QUICER: Next Generation Transport Protocol Library for BEAM | William Yang | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ QUICER: Next Generation Transport Protocol Library for BEAM | William Yang - Software Engineer at EMQ X ABSTRACT QUIC (RFC 9000) is a general-purpose transport layer protocol. It is selected as the transport layer for next-generation internet protocol HTTP/3. QUIC runs over UDP but it solves some issues that TCP could not and brings in a new way of developing and new features. In this talk, we will give an introduction to QUIC protocol and then introduce the open-source NIF library QUICER (GitHub - emqx/quic: QUIC Protocol for Erlang & Elixir) that we build for BEAM. OBJECTIVES Get started with quic protocol and get community attention about the QUICER NIF library. AUDIENCE Someone wants to catch up with the next-generation transport protocol. Someone wants to get some introduction with the quic protocol. Someone wants to know how to use quicer • Timecodes 00:00 - 04:19 - Intro to QUIC 04:20 - 07:38 - Middle Box Problem 07:39 - 10:02 - Why New Transport and QUIC: 1-RTT 10:03 - 13:29 - QUIC: 0-RTT 13:30 - 16:38 - QUIC Packetization and Streams 16:39 - 24:00 - QUICER Intro and Status • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Incremental Dialyzer: How we made Dialyzer 7x Faster | Thomas Davies | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Incremental Dialyzer: How we made Dialyzer 7x Faster | Thomas Davies - Software Engineer ABSTRACT Dialyzer is really powerful, but sometimes it can be hard to get the most out of it because the analyses can be quite slow. This talk introduces an incremental mode for Dialyzer that can significantly improve its performance by avoiding redundant work. OBJECTIVES Introduce a new "incremental" mode for Dialyzer, and explain how it differs from the classic model of building a PLT and checking it. AUDIENCE Erlang & Elixir users of Dialyzer • Timecodes 00:00 - 03:14 - Classic Dialyzer 03:15 - 12:10 - Incremental Dialyzer 12:11 - 27:53 - 7x Times Faster 27:54 - 28:36 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Update from the Elixir Core Dev Team | Andrea Leopardi | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Update from the Elixir Core Dev Team | Andrea Leopardi - Elixir Core Team Member & Software Engineer at Apple ABSTRACT Andrea will give updates on what the Elixir team has done in the last few months, what are the projects they're working on, what's going on on the research side, and what features will be in the next release. • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Evolving ErlangOTP Feature by Feature | Cons Åhs | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Evolving ErlangOTP Feature by Feature | Cons Åhs - Erlang/OTP team at Ericsson ABSTRACT With the release of OTP25, support for selectable features in the language and the runtime will be added. This means that extensions and changes to the language and/or runtime system can be used selectively. One benefit is the possibility to try out features without affecting existing code, even for backwards-incompatible changes. This talk will be a deep dive into the ideas and implementation behind the support for features. As an extended example, we will show how this support is used to add Value-Based Error Handling (EEP49) as the first experimental feature. OBJECTIVES Stake out a path forward, evolving Erlang/OTP without forcing developers to rewrite legacy code. AUDIENCE - Developers using Erlang/OTP, both those wanting new features and those who don't. - Managers of the same • Timecodes 00:00 - 07:45 - Intro 07:46 - 11:11 - Motivation 11:12 - 13:51 - What is a Feature? 13:52 - 18:46 - Details 18:47 - 28:11 - Feature Support in Action 28:12 - 34:23 - Enabling maybe 34:24 - 35:28 - Enabling/ Disabling 35:29 - 36:25 - Effects on a CodeBase 36:26 - 39:00 - Testing within Module 39:01 - 45:04 - Implementations 45:04 - 46:07 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Designing BEAM Systems for the Cloud Amazon AWS | Ayanda Dube | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Designing BEAM Systems for the Cloud Amazon AWS | Ayanda Dube - Erlang engineer and RabbitMQ specialist ABSTRACT System designers are now turning to cloud infrastructure for deploying and running BEAM systems at scale. But how can BEAM systems be designed to exploit cloud infrastructure such as Amazon AWS? In this talk, we look at some of the aspects to look out for when designing and architecting Erlang/Elixir systems for the cloud, with focus on Amazon AWS. OBJECTIVES Help Erlang/Elixir engineers better design systems for the cloud, (Amazon AWS). AUDIENCE Architects, Engineers and Developers. • Timecodes 00:00 - 02:59 - Intro 03:00 - 10:07 - Motivation 10:08 - 11:09 - What is a Feature? 11:10 - 12:57 - Details 12:58 - 19:32 - Feature Support in Action 19:33 - 21:11 - Enabling maybe 21:12 - 22:26 - Enabling/ Disabling 22:27 - 23:48 - Effects on a CodeBase 23:49 - 25:56 - Testing within Module 25:57 - 37:47 - Implementations 37:58 - 39:17 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
ROSiE the Robot Operating System in Erlang | Luca Succi | CodeBEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ ROSiE the Robot Operating System in Erlang | Luca Succi - Creator of ROSiE ABSTRACT ROSiE is a pure Erlang implementation of ROS (Robot Operating System). No matter where from cloud to robots at the edge: use Erlang or any other language on the BEAM to interact with the ROS ecosystem with the help of ROSiE. It’s fully interoperable with existing ROS2 Robots with all the scalability, concurrency, distribution, and fault-tolerance of the BEAM. ROS2 builds on the DDS data connectivity protocol which is used in many industries besides robotics. ROSiE therefore also provides a standalone DDS protocol stack. It also features dedicated Rebar3 plugins, to integrate Erlang projects with the official ROS2 distributions. There will be a demo with robots and GRiSP boards running ROS2 and ROSiE Nodes. You will see some hot code upgrade while robots are in action. This project is funded by the EEF. OBJECTIVES Explain all the possibilities opened up by ROSiE. Talk about how ROSiE works and how to work with it. Show the advantages and strengths of ROSiE over ROS2. Demonstrate the reliability of a code-hot-swap operation on a Robot inside a ROS network, only possible with Erlang and a ROSiE Robot. AUDIENCE Any developer or company working with the BEAM that could have any interest in ROBOTICS. Anyone that would like a Pub-Sub protocol-stack for Erlang since ROSiE includes the first Erlang implementation of DDS. • Timecodes 00:00 - 01:31 - Intro 01:32 - 05:43 - Wha is ROSiE? 05:44 - 08:28 - ROSiE Project 08:29 - 11:01 - ROS2 Client Library Architecture 11:02 - 16:55 - ROSiE Architecture 16:56 - 32:20 - Demo Time 32:21 - 41:58 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Trace Specifications & Chaos Engineering | Dmitrii Fedoseev | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Trace Specifications and Chaos Engineering: Advanced Testing with Snabbkaffe | Dmitrii Fedoseev - Software Developer ABSTRACT Testing distributed eventually consistent fault-tolerant Erlang applications is challenging: their state is difficult to inspect and model and supervisors can hide crashes. Fault tolerance is rarely checked by automatic tests. We solved these problems using a new elegant approach to testing. Snabbkaffe is a test framework that relies on offline inspection of the execution trace of the system. It makes verifying a distributed application recovering from the injected crashes as easy as writing a pure function. OBJECTIVES The trace-based approach to program verification is widely in academia, however, it remains relatively obscure in engineering circles. We have successfully adopted it for the practical applications running in production, and this is what the talk is about. Trace-based testing allows us to verify more complex scenarios, so we believe that sharing it with a wider audience will improve the overall quality of the Erlang ecosystem in the long term. AUDIENCE Software engineers and QA • Timecodes 00:00 - 01:05 - Intro 01:06 - 02:38 - What is EMQX and Challenges 02:39 - 10:25 - Theory of flaky testcases 10:26 - 16:56 - Concurrency 16:56 - 17:52 - Trace-based vs. State-based Approach 17:53 - 25:52 - Stages of the Test 25:53 - 27:51 - Fault Injection and Scenarios 27:52 - 30:00 - Case Study 30:01 - 34:57 - Challenges 34:58 - 39:35 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Code BEAM Europe 2022 | Highlights
Check details of the next Code BEAM Europe - The Erlang & Elixir Conference here: https://codebeameurope.com Code BEAM Europe 2022 Highlights Watch some of the best highlights of Code BEAM Europe 2022, the biggest BEAM meeting in Europe. • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/code-sync • Looking for a unique learning experience? Attend the next Code Sync conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw
Watch
Lambdapad, Static Websites with Elixir or Erlang | Manuel Rubio | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Trace Specifications and Chaos Engineering: Advanced Testing with Snabbkaffe | Dmitrii Fedoseev - Software Developer ABSTRACT Lambdapad was an effort performed by Garreth Smith to provide to the BEAM community (and Erlang mainly) a way to create a static site generator like Jekyll or Octopus from Ruby. Last year I take the code and using the "power of meta-programming" I performed my own vision about it and created a way to perform websites in an easier way, indeed, I'm using it for my blog (+300 posts) and different websites successfully. OBJECTIVES Introduce Lambdapad to the community and reach people who want to be involved in the project or support it. AUDIENCE People who want to create/maintain a website like a blog, landing page or similar. • Timecodes 00:00 - 06:51 - Intro 06:52 - 09:45 - Get Started with Lambda Pad 09:46 - 12:36 - What's the problem? 12:37 - 13:43 - Features: Markdown 13:44 - 16:53 - Features: config.toml + lambdapad.exs 16:54 - 25:58 - Demo Time • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Improve your tests with Makina | Luis Eduardo Bueso De Barrio | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Improve your tests with Makina | Luis Eduardo Bueso De Barrio - PhD candidate at Universidad Politécnica de Madrid ABSTRACT Writing good tests for complex software can be quite difficult. In the BEAM ecosystem, tools like QuickCheck and PropEr have demonstrated that Property-Based Testing (PBT) is an effective technique to find bugs in complex software. Such testing normally involves checking that the tested system performs as predicted by a state machine programmed in a QuickCheck domain-specific language (DSL). In spite of their proven effectiveness, the adoption of PBT state-machine models is frustratingly slow. Why? Writing state-machine models of complex systems can be a time consuming and error-prone activity, which requires substantial training. Moreover, maintaining such state-machine models is hard, even for PBT experts. To address such issues many projects attempt to automate testing. We, instead, aim to empower the test programmer by providing a more productive tool for writing test models: Makina. Makina is a new test library for Elixir, compatible with PropEr and QuickCheck state-machine models. This library provides a DSL that aims to improve early error detection in test models providing static and dynamic type checking. It also facilitates test model development encouraging code reuse with built-in composition mechanisms and automatic model documentation. OBJECTIVES In this talk, we will discuss the design of Makina, and illustrate how the library enables us to efficiently test smart contracts running on the Ethereum blockchain. AUDIENCE Elixir and Erlang developers interested in testing in general and PBT in particular. • Timecodes 00:00 - 02:49 - Problems with PBT Models 02:50 - 04:49 - Makina: The Language 04:50 - 05:31 - Ethereum Blockchain 05:32 - 17:10 - Mining Blocks 17:11 - 20:42 - Fixing the Models 20:43 - 22:25 - Running the Test • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Runtime Modes and Plugins in Erlang | Ulf Wiger | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Runtime Modes and Plugins in Erlang | Ulf Wiger - Erlang Developer ABSTRACT Aeternity Foundation decided to introduce runtime modes (maintenance mode, dev mode, ...) and plugins in the already mature Aeternity Core blockchain system. Drawing on experiences from the old Ericsson AXD 301 system, Ulf introduced `app_ctrl`, a highly configurable application controller extension, and combined it with `setup`, a modular tool for installing and configuring systems. This allowed us to add exciting new functionality to a very stable system. In this talk, we describe some core OTP principles as well as some dirty tricks employed to make things work. OBJECTIVES Highlight OTP principles, describe some core OTP features and introduce new possibilities. AUDIENCE Erlang developers and architects. • Timecodes 00:00 - 00:58 - Intro 00:59 - 03:37 - The Problem 03:38 - 07:06 - AXD 301 - Early Days 07:07 - 10:18 - RCM - Runtime Configuration Manager 10:19 - 14:55 - AXD301 sysInstall 14:56 - 17:08 - Use of Setup in Aeternity 17:09 - 18:28 - app_ctrl in Aeternity 18:29 - 20:01 - app_ctrl Implementation 20:02 - 21:24 - The Big Hack 21:25 - 22:35 - Progression 22:36 - 24:45 - Plugin Configuration 24:46 - 26:21 - TODO • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Conway's Law Compliance in a Many Services Architecture | Greg Mefford | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Conway's Law Compliance in a Many Services Architecture | Greg Mefford - Member of the Erlang Ecosystem Foundation ABSTRACT As your company grows and scales out, both in terms of people and software, a common pattern is to split the software up into multiple services maintained by multiple teams. Whether or not those services are micro, this leads to a lot of hard choices that you'll have to make about how to do that efficiently and maintainably. Stord has grown significantly over the past year and has used several techniques to continue to scale our engineering teams and inter-service coordination, using synchronous API calls as well as asynchronous event-processing via Kafka. This talk will present some of the things that worked well and not-so-well that we've learned from. OBJECTIVES • Share learning from building a shared HTTP client for synchronous calls as well as an asynchronous event-processing infrastructure. • Share tips for co-developing a socio-technical system that can sustain rapid growth AUDIENCE • Engineers looking for hard-earned technical lessons in service coordination • Engineering Managers who are trying to scale their teams and software quickly • Timecodes 00:00 - 01:10 - Intro 01:11 - 03:33 - Growth 03:34 - 06:11 - Organization 06:12 - 07:22 - Synchronous HTTP 07:23 - 11:15 - Sagas 11:16 - 14:54 - Event Outbox 14:55 - 16:40 - Event-Driven 16:41 - 17:57 - Handling Failures 17:58 - 18:40 - Ouroboros Events 18:41 - 24:03 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
The Hunt for the Cluster Killer Bug | Dániel Szoboszlay | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Working Effectively With Erlang Legacy Code | Brujo Benavides - Erlang Developer at NextRoll ABSTRACT We know Erlang is all about fault tolerance. A well-engineered Erlang system – such as Kred, in the heart of Klarna’s business – will never stop, no matter what. Yet, about a year ago a short Kafka outage shook our mighty Kred so bad it knocked out all but one node. A few days later a second outage took down the entire cluster. How could this happen? This is the story of our hunt for the cluster-killer bug before it could strike again. It is a story of unexpected twists and descending to the deepest depths of the technology stack powering an Erlang application. OBJECTIVES Give some new tools for debugging low-level issues in an Erlang stack. Teach about Erlang’s memory model. AUDIENCE Developers who would like to add some new tricks to their debugging toolbox. • Timecodes 00:00 - 04:39 - Intro and Fault Tolerance 04:40 - 08:27 - System Architecture 08:28 - 09:15 - Troubleshooting 09:16 - 13:29 - Identify 13:30 - 15:26 - Fix 15:27 - 20:36 - Alert + Identify + Fix 20:37 - 21:32 - The incident 21:33 - 27:26 - Symptoms 27:28 - 29:45 - Validate 29:46 - 34:10 - The Path of Metrics 34:11 - 40:19 - Testing lock-ups 40:20 - 46:36 - The Mystery Term • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Testing Done PropEr | Max Nordlund | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Testing Done PropEr | Max Nordlund - Lead Backend Developer at Kivra ABSTRACT What's better than writing tests? Having the computer write them for you. Well, at least teach the computer what it can do and let it loose to try to shake out any flaws. This talk is about PropEr, a property-based testing framework, and more specifically about its support for testing state machines. I'll whet your appetite by introducing property-based testing, and then take a deep dive into PropEr statem and how you can use it to test state machines. OBJECTIVES Give the audience an overview of what PropEr statem is/does, and how to approach writing their own tests using it. AUDIENCE Erlang developers wanting to learn about property based testing in general, and PropEr statem testing in particular. • Timecodes 00:00 - 02:02 - Intro 02:03 - 04:08 - What is PropEr 04:09 - 08:35 - Basic Setup 08:36 - 13:19 - The Tale of Trains 13:20 - 33:15 - Symbolic vs Dynamic 33:16 - 39:33 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Kill All Mutants! Intro to Mutation Testing | Dave Aronson | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Kill All Mutants! Intro to Mutation Testing | Dave Aronson - software development consultant ABSTRACT How good is your test suite? Would it all still pass if the tested code was changed? If so, there may be problems with your code, your tests or both! Mutation Testing reveals these cases. This talk will tell you how to use mutation testing, its benefits, drawbacks, inner workings, and history. There will be several examples and a list of tools for many popular languages. You will come away equipped with a powerful new technique for making sure your tests are strict and your code is meaningful. OBJECTIVES Tell people: what mutation testing is why mutation testing is helpful how to do mutation testing some tools for doing mutation testing AUDIENCE Senior devs, and occasional intermediate developers, who are comfortable with unit testing and, ideally, are already familiar with more abstruse concepts like an Abstract Syntax Tree, but that's not absolutely required. Where experience helps is more in being able to connect the results of a particular case with what you should do about it. • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Working Effectively With Erlang Legacy Code | Brujo Benavides | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Working Effectively With Erlang Legacy Code | Brujo Benavides - Erlang Developer at NextRoll ABSTRACT So you just joined a massive project with tons of poorly-maintained Erlang code. DON'T PANIC! This tutorial will teach you all the tools and techniques you need to start working on it confidently and productively. You will learn how to use tools like the compiler, common_test, xref, dialyzer, elvis, hank, the formatter and others in large codebases which are generally hard to work on. These tools and some of the techniques will increase your confidence and help you work more efficiently. TARGET AUDIENCE Erlang developers that work (or plan to work) in legacy systems. PREREQUISITES Erlang/OTP 22 (or newer), github, and a text editor COVERS THE FOLLOWING TOPICS Improving systems in an iterative way Testing Frameworks: Common Test, Eunit Cross-reference Analyzers: Xref Discrepancy Analyzers: Dialyzer / Gradualizer Linters: Elvis / rebar3_lint Dead Code Removers: Hank / rebar3_hank Security Analyzers: PEST WHY YOU SHOULD ATTEND THIS COURSE Increases your confidence in dealing with large and complex systems. Gives you tools to help you build better applications. Gets you thinking in maintainability. Helps you follow Joe’s recommendation of writing Beautiful Code. • Timecodes 00:00 - 04:11 - Introduction 04:12 - 07:50 - Meta 07:51 - 12:51 - Content and Consequence 12:52 - 16:24 - New Space to Play 16:25 - 23:19 - Locality 23:20 - 26:58 - Consistency is a Lie 26:59 - 33:28 - PLOP 33:29 - 38:33 - Massive reliability 38:34 - 49:00 - Ruthless Modularity 49:01 - 52:36 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Smashing the Data Bottleneck with (...) on the BEAM | Vijay Chakilam | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Smashing the Data Bottleneck with Federated Machine Learning on the BEAM | Vijay Chakilam - Head of Machine Learning at Partsimony ABSTRACT We know Erlang is all about fault tolerance. A well-engineered Erlang system – such as Kred, in the heart of Klarna’s business – will never stop, no matter what. Yet, about a year ago a short Kafka outage shook our mighty Kred so bad it knocked out all but one node. A few days later a second outage took down the entire cluster. How could this happen? This is the story of our hunt for the cluster-killer bug before it could strike again. It is a story of unexpected twists and descending to the deepest depths of the technology stack powering an Erlang application. OBJECTIVES Give some new tools for debugging low-level issues in an Erlang stack. Teach about Erlang’s memory model. AUDIENCE Developers who would like to add some new tricks to their debugging toolbox. • Timecodes 00:00 - 01:47 - Agenda 01:48 - 04:13 - Machine Learning 04:14 - 07:09 - Data Bottleneck 07:10 - 09:56 - Federated Machine Learning 09:57 - 11:58 - Motivation 11:59 - 13:14 - Challenges 13:15 - 21:37 - Federated Machine Learning on the BEAM 21:38 - 26:48 - Algorithms 26:49 - 30:31 - Future Work 30:32 - 36:55 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
A Serverless Runtime on the BEAM | Marcel Lanz | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Testing Done PropEr | Max Nordlund - Founding member of EIGR.IO ABSTRACT Serverless runtimes are often hidden in cloud providers offering and exposed solely by their programming API and deployment procedures. In this talk, we'll explore an open-source Serverless runtime built for the cloud and on-premises, running on the BEAM with a polyglot programming model to build general-purpose applications. OBJECTIVES In this talk, we'll present how the BEAM and OTP are an ideal fit to build a Serverless runtime. After an introduction about Serverless and a polyglot programming model, we'll present the open-source project at eigr.io where we implemented the core of our runtime based on Erlang/OTP and written in Elixir. AUDIENCE Individuals interested in Serverless, Distributed State Management and polyglot programming models. • Timecodes 00:00 - 03:56 - Intro 03:57 - 07:50 - Realities of a Todays Enterprise 07:51 - 09:20 - Make the Move 09:21 - 11:46 - eiger.io and Cloudstate 11:47 - 15:19 - eigr Functions 15:20 - 17:22 - Service Proxy 17:23 - 21:45 - Inversion of State 21:46 - 22:47 - Current State and Challenges 22:48 - 24:18 - Summary & QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Sheldon: The Erlang Spell Checker | Viacheslav Katsuba | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Sheldon: The Erlang Spell Checker | Viacheslav Katsuba - Erlang Consultant ABSTRACT In this talk, I'll give you a comprehensive view of Sheldon, the Erlang spell checker Felipe Ripoll created for Inaka. With this talk, you'll learn how the spell checker can be used and integrated into your project and the advantages that you can expect from it. You will also find out what challenges we faced while we developed this library, you'll see how it evolved and how mentoring by Brujo Benavides was instrumental in the development and improvement of those projects. OBJECTIVES Show the potential of the library and plugin. AUDIENCE All Erlang and Elixir developers. • Timecodes 00:00 - 08:05 - What is Sheldon? 08:06 - 14:14 - Peter Norvig's Algorithm 14:15 - 18:39 - Improving Sheldon 18:40 - 20:51 - The Sheldon rebar plugin 20:52 - 24:03 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch
Growing together with the BEAM | Stavros Aronis & Hans Nahringbauer | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Growing together with the BEAM | Stavros Aronis - Developer & Trainer at Erlang Solutions & Hans Nahringbauer - Product Manager at Telia ACE ABSTRACT Telia ACE is the leading contact center product in the Nordics, using BEAM's scalability, availability and ease of development to handle calls, sms, mail, chat, social media, and recording for major companies and municipalities. As one of the first adopters of Erlang/OTP for their backend, more than 20 years ago, the ACE team has seen the technology and community grow, and have followed along with impressive growth themselves. Hans Nahringbauer, recipient of the "Erlang User of the Year" award from the Erlang User Conference 1999 (Code BEAM EU's spiritual predecessor), has been leading the ACE platform for more than 20 years. Stavros Aronis joined them in 2018 as a senior developer and Erlang Solutions consultant to assist with some of their latest projects, integrating with a new call recording and Interactive Voice Response (IVR) framework on Amazon Web Services (AWS). Join this talk from Hans and Stavros to listen about the history, challenges, and exciting ongoing projects of some of the earliest Erlang/OTP enthusiasts! OBJECTIVES Tell the story of succeeding for more than 20 years with the BEAM, and show how Telia ACE plans to continue doing so for many years to come! • Timecodes 00:00 - 08:36 - The Story about Erlang and Telia Ace 08:37 - 09:35 - First Installation 09:36 - 15:32 - Why Erlang? 15:33 - 18:20 - Architecture Overview 18:21 - 24:44 - Ace Recording G2 - Staging 24:45 - 28:00 - Telia ACE & Google CCAI 28:01 - 41:13 - Summary + QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global
Watch