Code BEAM America 2022
2022
List of videos

Keynote: We are stronger together | Andrea Leopardi & Maxim Fedorov | Code BEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ We are stronger together | Andrea Leopardi & Maxim Fedorov - Elixir Core Team Member & Software Engineer at WhatsApp ABSTRACT The BEAM is living its best days. The ecosystem is thriving, big companies are picking up our languages, innovation is sprawling, and BEAM-based solutions are getting traction in new domains. But being fragmented, the ecosystem is not as strong as it deserves. There are over 30 languages speaking BEAM, yet only a few can talk to each other. While improvements to Erlang/OTP often trickle down to Elixir and Gleam, the opposite is rarely true. Rewriting everything with Erlang is not an option - we would not rewrite C++ in C either. So what can we do to bring the community together? We want to talk about the challenges we are facing, the future we envision, and some ideas on how we can step into that future. We want to get you inspired to reunite the ecosystem. OBJECTIVES Unite developers working in and on the ecosystem. AUDIENCE Any developer working with BEAM • Timecodes 00:00 - 03:53 - Intro 03:54 - 06:37 - The Ecosystem 06:38 - 08:40 - The Business Part 08:41 - 10:54 - Multi-dimensional Challenge 10:55 - 11:49 - The Onion Theory 11:50 - 20:06 - Erlang and Elixir 20:07 - 22:41 - GLEAM, LFE and more 22:42 - 32:54 - Monorepo for the BEAM 32:55 - 38:02 - Interoperability 38:03 - 47:25 - F.O.M.O 47:27 - 56:51 - Compilation and Types • 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
Keynote: Security Under the BEAM | Boyd Multerer | Code BEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ Security Under the BEAM | Boyd Multerer - Creator of Scenic and Lead Engineering for Xbox Live, XNA ABSTRACT The BEAM VM is a leader in application-level isolation. Isolated code recovers from faults. Isolated processes can process messages asynchronously with very little coordination. Isolated data means garbage collection is fast and simple. We studied these isolation patterns and asked what would an operating system look like that learned from those lessons and was built to be good at running the BEAM? Could isolation patterns be used to provide deep security that runs from the OS up through the BEAM? The resounding answer to that question is yes! In this keynote, we will present our findings and show you how to build software that uses trustworthy isolation, so that if problems do occur, they cannot spread to the rest of the system. The combination of formal methods, the seL4 Microkernel and the BEAM is the magic formula to build a new operation system for the next generation of software and device. We are very excited to present, for the first time, the Kry10 Secure Platform. • Timecodes 00:00 - 03:21 - Intro 03:22 - 07:54 - IoT: Momentum and Challenges 07:55 - 13:39 - Platform Requirements 13:40 - 17:21 - What's a Microkerner + Formal Methods 17:22 - 27:53 - The Kry10 Platform 27:54 - 30:27 - Summary 30:28 - 43:22 - 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
Keynote Panel discussion: Erlang all the things | Randall Thomas | Code BEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ Keynote Panel discussion: Erlang all the things | Host Randall Thomas with panelists: Frank Hunleth, Amos King, Boyd Multerer, Andy King ABSTRACT What the BEAM brings to the world of devices and why, sooner or later, you need to care. According to Fortune Business insights: The global internet of things market is estimated to rise from USD 478.36 billion in 2022 to USD 2465.26 billion by 2029 [iot_growth], with a global economic impact estimated at $11.1 Trillion dollars by 2025. A compound annual growth rate of 26.4% — or — 7 IoT devices for every person on earth. Fear not, intrepid programmer! Erlang, Elixir, and the BEAM are uniquely positioned to tackle problems at this scale using the techniques and technologies we use every day. Join us for an in-depth discussion on why the BEAM is the correc VM at the right time to meet the challenge of managing devices at global IoT scale. Panelists: Frank Hunleth - Embedded systems engineer, Co-Author of The Nerves Project, Author of “Build a Binary Clock with Elixir and Nerves” Bruce Tate - Elixir Educator, Author and Editor; Founder of Grox.IO, Author of “Build a Binary Clock with Elixir and Nerves” Amos King - CEO at Binary Noggin, Elixir Outlaw podcast agitator, Man with Cat jokes Boyd - Founder Kry10 secure platform, author of Senic, Ex-Microsoft and the reason you lost years of your live to XBox live • 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
Refactoring via the Language Server Protocol | Simon Thompson & Dominik Katkó | Code BEAM America 22
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ Refactoring via the Language Server Protocol | Simon Thompson & Dominik Katkó - Professor at the University of Kent & MSc student at the Technical University of Denmark ABSTRACT Refactoring is the process of improving code without changing what it does, and is typically supported in tools such as Wrangler for Erlang. The Language Server Protocol (LSP) allows tools like this to be integrated in a variety of editors, including VS Code, emacs and vim, and the Erlang Language Server (ELS) provides an integration of Erlang into LSP. After a short introduction to refactoring, Wrangler and Erlang LS, we explain how facilities in Wrangler, including refactorings, input and form-based choices, are incorporated into ELS and LSP, and demo these for a variety of Wrangler refactorings. • Timecodes 00:00 - 01:13 - Intro 01:14 - 05:31 - Refactoring & Wrangler 05:32 - 10:08 - Language Server Protocol 10:09 - 17:11 - Wrangler LS Implementation 17:12 - 26:07 - More Complex Refactorings 26:08 - 32: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
Accessible Time Series data with TimescaleDB | David Lucia | Code BEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ Accessible Time Series data with TimescaleDB | David Lucia - CTO at Bitfo ABSTRACT Timeseries data is everywhere! Whether you’re tracking application metrics, financial price information, or IOT sensor data, having an effective means to store, analyze, and display this can add value to any product. However, having an accessible timeseries database can be a challenge, with many proprietary databases requiring licenses, infrastructure costs and maintenance. TimescaleDB is an open-source alternative that is simply a Postgres extension, a database that many developers are already using. In this talk, we will look at what problems are needed out of a Timeseries database, and how TimescaleDB can help you solve these problems with familiar tools that are easily accessible on the BEAM. OBJECTIVES 1) Teach the audience where they might encounter timeseries data in their product 2) Introduce TimescaleDB, how you can deploy it to your existing Postgres deployment 3) Share ways of leveraging the unique features of timescale DB, including compression, continuous aggregates, and other features to build interesting applications on top of this data platform. AUDIENCE Developers who may have timeseries data in their product, but have no found effective ways to utilize it, or are struggling with scaling timeseries aggregations • 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
Building blocks and How to Use Them: A MongooseIM Case Study | Nelson Vides | Code BEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ Building blocks and How to Use Them: A MongooseIM Case Study | Nelson Vides - Core Developer of MongooseIM ABSTRACT This is a talk about open source and the community, with MongooseIM as its backbone. MongooseIM is Erlang Solutions’ robust, scalable and customisable messaging server, and using it as a “case study”, I want to tell the story of the evolution of a big and old open source project. I’ll start presenting common Erlang design patterns for a server – the supervision trees, the many processes, the NIFs when they are needed, and most importantly, the ways to preserve a big project manageable and continuously evolving. I also want to present the libraries that branched off from MongooseIM. In the evolution of a big project, often times you find pieces of code that are not an integral part of the business logic but actually can be generalised and reused for projects potentially very different from your own. I want to present what we found and how, what we extracted, and what we prepared for other people to reuse. • 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
seL4 and BEAM: A match made in Erlang | Ihor Kuz | Code BEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ seL4 and BEAM: A match made in Erlang | Ihor Kuz - Operating system engineer @ Kry10 & seL4 TSC member ABSTRACT Erlang and Elixir are great languages for programming concurrent and fault-tolerant applications yet they still require BEAM to run them on real-world hardware. BEAM is a complex piece of software that leverages general purpose operating systems to enable concurrent applications to scale to incredible levels. But what if you want to run Erlang or Elixir without an OS? Modern operating systems such as Linux are large and complex and can be the wrong choice to deploy on for embedded applications that prioritize security and robustness. What would it take to run the open-source BEAM implementation in a freestanding environment with no external OS services but still presented a partial POSIX system interface? Would this implementation still allow for useful applications? What are the tradeoffs and what features do we need to give up? This talk tries to answer these questions by presenting a recent project that ported BEAM to a freestanding environment for ARMv7 application processors. OBJECTIVE Explain how the BEAM virtual machine can be run in a minimal self-hosted process environment without a runtime dependency on a large general-purpose operating system and discuss what tradeoffs are associated with this approach and why you would want to do this when seeking better security and robustness. AUDIENCE Embedded systems software developers as well as anyone else interested in understanding or removing various abstraction layers that sit between our high-level software and the physical machines that compute it. • Timecodes 00:00 - 01:29 - Intro 01:30 - 04:41 - Connected Industrial Devices 04:42 - 09:06 - Achieving Security and Resilience 09:07 - 11:26 - seL4: Microkernel 11:27 - 16:25 - seL4: Formal Verification 16:26 - 22:22 - BEAM and seL4: Example 22:23 - 25:27 - BEAM Communication 25:28 - 26:23 - Summary and Future • 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
Deep dive in Nx Backends | Paulo Valente | Code BEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ Deep dive in Nx Backends | Paulo Valente - Software Engineer ABSTRACT Elixir's Nx library implements its features through a configurable backend structure, in which inputs are dispatched to their respective implementations at runtime. In this talk, we're going to review Nx's Backends and how they play with performance and automatic differentiation. For this, we're going to study how Nx compiles and executes a given code sample and how using defn, Nx's numerical function definitions, can enable Axon (a deep learning library) to work. TALK OBJECTIVES The main objective of this talk is to shed some light in one of the more technical and internal aspects of Elixir's Nx. There are some articles here and there talking about this, but as part of the Nx team I hope to provide some more information about how the library works. This would also be one of the first talks on the subject. TARGET AUDIENCE Although the talk is mainly about an Elixir library, I think all BEAM users which have an interest in machine learning would be interested in it, especially since it's a direct product of the EEF Machine Learning Working Group. It can also be interesting for people which come from an ML background but don't know much about the BEAM • Timecodes 00:00 - 01:10 - Intro & Table of Contents 01:11 - 02:58 - What are the Nx Backends? 02:59 - 04:29 - When to Use Different Backends? 04:30 - 09:25 - Backends vs Numerical Definitions 09:26 - 16:54 - Nx.Defn.Expr Usages 16:55 - 22:29 - To +Inf and Beyond • 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
When the Cloud s Reign is Over | Nicholas Adams | Code BEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ When the Cloud s Reign is Over | Nicholas Adams - Head of Global Support @ TI Tokyo ABSTRACT Cloud Computing is great. It gives you practically instant scalability with no need for a large infrastructure team and guaranteed up times, plus the ability to try scaled-down versions of your projects at negligible costs before investing in major infrastructure. So it came as a surprise to me to discover that, after a certain tipping point, cloud computing is actually horrendously cost-ineffective! We’re not talking a few hundred dollars here, we’re talking up to double the IT budget you’d be paying to run the majority of your systems in-house. That doesn’t even include any in-direct cost-savings such as reduced legal fees from simpler regulatory compliance! It turns out that GDPR and similar laws also become surprisingly simple when your customer’s data is physically located on servers you control. Join me for this talk to hear a few examples and a couple of options to move from someone else’s computer to one of yours! OBJECTIVES: To make people aware that the cloud is not the be all and end all of production systems. To give people an idea of when they should start looking at migrating away from the cloud for cost benefits. AUDIENCE: Anyone from dev-ops and sys-admin all the way up to CTO or CIO level • Timecodes 00:00 - 01:57 - Intro & Content 01:58 - 05:59 - Early Cloud Days 06:00 - 10:11 - Whose Cloud is it Anyway? 10:12 - 19:31 - What is Actually Going On? 19:32 - 26:01 - Wrap Up & 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
On the way to achieve autonomous node communication Elixir | Hideki Takase | Code BEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ On the way to achieve autonomous node communication in the Elixir ecosystem | Hideki Takase - Associate Professor at The University of Tokyo, Japan ABSTRACT Have you ever felt that finding communication nodes by specifying information such as IP addresses is complicated? RTPS (Real-Time Publish Subscribe) is a communication protocol. The main advantage is that nodes can acquire autonomy in communication. Without setting up any broker, a node can automatically discover communication partners for publication/subscription only by specifying a topic. Note that the use of RTPS is restricted to the area under the NAT server. We are working on R&D about “Rclex,” a client library for ROS 2 platform. This library has directly integrated the feature of RTPS into Elixir. This talk will consider how to bring the power of Rclex into Nerves devices. To find out the current status of Rclex, we will provide a way to realize this purpose. In addition, we will share our latest R&D activity to enable RTPS communication in Elixir/Nerves beyond the NAT server. Once achieved, we can apply RTPS to the wide-area distributed system. • 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
ActiveMemory the missing ORM for ETS and Mnesia | Erin Boeger | Code BEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ ActiveMemory the missing ORM for ETS and Mnesia | Erin Boeger - Senior Developer @ Erlang Solutions ABSTRACT A package to help bring the power of in memory storage with ETS and Mnesia to your Elixir application. ActiveMemory provides a simple interface and configuration which abstracts the ETS and Mnesia specifics and provides a common interface called a Store. Use ETS and Mnesia to help boost your application performance, simplify configurations and secrets, help reduce database dependency, and more. OBJECTIVES Introduce the ActiveMemory hex package and what problems it is trying to solve. Also help people better understand ETS, Mnesia, and how they can make our apps better. AUDIENCE Anyone who has interest with in memory tables and or has had previous experience with ETS or Mnesia. • 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
Fast IP Address Matching in Elixir (...) & Persistent Term | Michael Lubas | Code BEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ Fast IP Address Matching in Elixir with Radix Trees & Persistent Term | Michael Lubas - Founder of Paraxial.io ABSTRACT When your web server receives a new login request, is it from a real user, or a rented cloud server? You have a list of thousands of IP prefixes, and need a way to compare each incoming conn’s remote_ip to that list. This problem will be used to illustrate several features of Elixir/Erlang. The beginning of the talk will introduce the problem to the audience, and show why the default Elixir data structures are not suitable. Once the radix tree has been covered, we’ll move to the problem of thousands of processes needed to access the same data structure in a short period of time. The talk will cover GenServers, ETS, and the constant pools optimization, and why these are the wrong choice for the problem. Finally, the complete solution will be shown, using persistent_term. OBJECTIVES Introduce the problem of IP address matching Show why the radix tree is a good choice Compare GenServers, ETS, and persistent_term for this probleml • 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
Elixir update | Andrea Leopardi | CodeBEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ Elixir update | Andrea Leopardi - Elixir Core team member ABSTRACT Andrea will give updates on what the Elixir team has done in the last few months, what projects they’re working on, what’s going on on the research side, and what features will be in the next release. AUDIENCE: Introductory and overview • 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
Tackling Technical Debt at Adobe: A Story (...) at Frame io | Milton Mazzarri | Code BEAM America 22
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ Tackling Technical Debt at Adobe: A Story which started at Frame.io | Milton Mazzarri - Senior Software Engineer ABSTRACT After the aquisition of Frame.io by Adobe, priorities shifted. From being a startup, we were catapulted to a world of enterprise software development, with the potential of a 10x increase in volumes. Our first priority was tackling technical debt so as to allow us to scale and integrate with their other products. In this talk, we will share some of the technical challenges we faced with a 6 year old Elixir code base and how we dealt with them. From internal code changes, improvements in stability, observability, the database layer, and of course, scalability. These initial improvements allowed us to replace some of the in-house applications with OSS and other Professional packages like Oban Pro+Web, and Broadway. In this talk, you will learn not only how to deal with technical debt, but also how to deal with management, getting them involved in the process and giving you the bandwidth you need to address the issues. OBJECTIVE Show how the team behind Frame.io gained stability, observability and scalability after focusing on paying its technical debt in a six-year-old codebase. And how tackling issues directly in our often neglected RDBMS resulted in immediate benefits. AUDIENCE Elixir Developers, Database (PostgreSQL) analysts • 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
An Elixir app to a small hydropower plant with Nerves | Yutaka Kikuchi | Code BEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ An Elixir application to a small hydropower plant with Nerves machines | Yutaka Kikuchi - Professor at Kochi University of Technology ABSTRACT We have been working on developing small hydropower plants in regional areas in Japan. They have two subsystems, one controlling the plant and the other communicating with a management system on the internet. The latter subsystem, we call SCADA, or Supervisory Control And Data Acquisition. We often use PLCs, or Programmable Logic Controllers, that are industrial computers for the former subsystem. However, PLCs are unsuitable for SCADA because they are too traditional to be a part of a distributed system like SCADA. Therefore we have been trying to use a modern method for it. This time, we produce our own machine running Nerves, an extension of BeagleBone Green. Also, we made a program in Elixir to communicate the management system in the cloud. This presentation will report the system that Elixir uses in an industrial field. Also, we will discuss the issue in the domain that we should consider. OBJECTIVES This presentation will demonstrate that Elixir can be used in industrial applications by showing an actual application of Elixir in a small hydro-power plant. In addition, the presentation will discuss the issues in applying Elixir to further work of Industrial applications. • 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
OTP Process Abstractions with proc lib | Mitchell Hanberg | Code BEAM America 2022
This video was recorded at Code BEAM America 2022 - https://codebeamamerica.com/ OTP Process Abstractions with proc lib | Mitchell Hanberg - Senior Software Engineer at Simplebet ABSTRACT Creating your own generic process abstraction can allow developers to focus on their implementation and not worry about boilerplate. Examples of this exist in OTP with `gen_server`, in Elixir’s Task, and in libraries like Phoenix with Channels. Using `proc_lib`, you can quickly create your own process abstractions that are OTP-compliant: they’re able to be supervised, respond to debugging tools like `sys:get_state/1`, and have their own custom callbacks (`handle_foo`). This is how `gen_server` and `gen_statem` are implemented. In this talk, we’ll explore all the different features that you’ve seen in OTP-compliant processes, what we might want in our own, and hypothesize what it takes to build one. We’ll take this hypothesis and walk through building an abstraction for making custom language servers using the Language Server Protocol. In the end, we’ll see that in just a few lines of code, we can easily build our own OTP-compliant process abstraction and use it to build a process. Talk objectives: Show developers the tools for creating valuable abstractions in their libraries and application code and give them insight into how the builtin tools are written. Target audience: Elixir and Erlang developers looking to increase their understanding and proficiency with OTP. • Timecodes 00:00 - 03:46 - Intro 03:47 - 09:28 - What makes the BEAM special? 09:29 - 11:10 - :gen_server 11:11 - 26:18 - Language Server Protocol: A quick primer 26:19 - 28:28 - Demo. We're doing it live! 28:29 - 32:13 - 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 Elixir and Python when working with Simple Neural Networks - A. Neto & L. C. Tavano
✨This talk was recorded at Code BEAM America 2022. If you're curious about our upcoming event, check https://codebebeamamerica.com ✨ With a wide range of libraries focused on the machine learning market, such as TensorFlow, NumPy, Pandas, Keras, and others, Python has made a name for itself as one of the main programming languages. In February 2021, José Valim and Sean Moriarity published the first version of Numerical Elixir (Nx), a library for tensor operations written in Elixir. Nx aims to allow the language to be a good choice for GPU-intensive operations. This talk aims to compare Python and Elixir when training convolutional neural networks using MNIST and CIFAR-10 datasets as examples, analyzing development experience, and performance difference. OBJECTIVES ✨Teach about the new Nx library for Elixir ✨Compare Nx and Keras by the use of resources and time to train similar neural networks ✨Talk about the experience of developing in both languages and how different this experience was. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync
Watch
Freestanding Erlang Porting BEAM close to the metal. Ihor Kuz & Kent McLeod | Code BEAM America 2022
✨This talk was recording Code BEAM America 2022. If you're curious about our upcoming event, check https://codebebeamamerica.com ✨ Abstract: Erlang and Elixir are great languages for programming concurrent and fault-tolerant applications yet they still require BEAM to run them on real-world hardware. BEAM is a complex piece of software that leverages general purpose operating systems to enable concurrent applications to scale to incredible levels. But what if you want to run Erlang or Elixir without an OS? Modern operating systems such as Linux are large and complex and can be the wrong choice to deploy on for embedded applications that prioritize security and robustness. What would it take to run the open-source BEAM implementation in a freestanding environment with no external OS services but still presented a partial POSIX system interface? Would this implementation still allow for useful applications? What are the tradeoffs and what features do we need to give up? This talk tries to answer these questions by presenting a recent project that ported BEAM to a freestanding environment for ARMv7 application processors. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync
Watch
RabbitMQ Performance Improvements - David Ansari - Code BEAM America 2022
✨This talk was recorded at Code BEAM America 2022. If you're curious about our upcoming event, check https://codebebeamamerica.com ✨ This talk starts by providing an overview of RabbitMQ’s architecture. Michal and David explain how the Erlang Runtime System is leveraged to implement a scalable message broker. We discuss performance improvements in recent RabbitMQ releases for all queue types: Classic Queues, Quorum Queues, and Streams. We provide examples of how we spotted and fixed bottlenecks in the broker thanks to new Erlang/OTP features. Current performance shortcomings are also addressed in the presentation. The talk concludes with an outlook of RabbitMQ’s future direction and what the community can expect from RabbitMQ in 2023.
Watch
Better Data Access with Composable Queries | Andrew Ek | Code BEAM America 2023
✨This talk was recorded at Code BEAM America 2022. If you're curious about our upcoming event, check https://codebebeamamerica.com ✨ The Ecto.Query DSL gives us a wonderfully expressive tool for fetching data. With a little bit of extra magic, we can create composable, human-readable, expressive, pipeline-able methods that reveal the human meaning behind the data we’re accessing, rather than the implementation details of the DB schema itself. In this talk, I’ll show how to begin decomposing existing queries (and creating new queries) with composable queries, how to organize those queries, and how to make them discoverable. I’ll also show how to accomplish common joins, make use of subqueries, and other common SQL operations.
Watch
Crossing boundaries with Gleam - from functions to runtime | Raúl Chouza | Code BEAM America 2022
✨This talk was recorded at Code BEAM America 2022. If you're curious about our upcoming event, check https://codebebeamamerica.com ✨ Raúl Chouza: As BEAM programming languages go, Gleam is a rising star that mantains the same capabilities we love from the platform but adds a slightly different route for constructing programs. Gleam relies on type signatures and a friendly compiler that can very quickly detect some flaws in our logic. In some scenarios it will help with simple casting errors, but in others the type signatures can guide the design of our programs. In this talk I would like to take a tabletop game and explore its implementation in Gleam, showing some of the bits and building blocks of the language plus different approaches of doing abstraction through types. More so, once our core logic is defined we can start thinking on how it can be integrated to the BEAM runtime and how crossing this boundary looks like.
Watch
A case study of using FP and Erlang in a Computer Science Curriculum. Lee Barney - Code BEAM America
✨This talk was recorded at Code BEAM America 2022. If you're curious about our upcoming event, check https://codebebeamamerica.com ✨ Change can be hard, especially when everyone has input but not detailed experience. At BYU-Idaho we faced an outdated CS undergraduate curriculum that did not meet Higher Education or industry, and therefore student, needs. In a dramatic and complete rewrite of our CS curriculum, Functional Programming and Erlang became a large part of the solution to our problem.
Watch
High throughput data processing with GenStage | Ian Butler | Code BEAM America 2022
✨This talk was recorded at Code BEAM America 2022. If you're curious about our upcoming event, check https://codebeamamerica.com ✨ Data processing is a part of many disciplines in technology and as the amount of data you need to process grows so do the techniques you need to be able to safely and speedily ingest that data. Join us as we go through the building blocks Elixir offers to build different ingestion topologies that handle things like backpressure, partitioning, retries, and batching.
Watch
Barrel, a decentralized data platform to take back the control of your data | Benoit Chesneau
✨This talk was recorded at Code BEAM America 2022. If you're curious about our upcoming event, check https://codebebeamamerica.com ✨ Along the years have built and provided to our customers a moderne decentralized platform which next iteration will be fully opensource. With barrel you can easily pass, filter and control the data between on-premise or cloud sites using a Peer-To-Peer network built over HTTP and other web technologies like WASM. You can also subscribe to different data stream using using AQMP, MQTT, Websockets, Server-Sent-Events. The data is always under your control and sites even when using our service hosted in different datacenters in our own hardware. With barrel we created and continue to maintain different opensource libraries and projects used by the Erlang Ecosystem: rocksbd binding, hackney, erlang nat, certifi… .. In this talk we will show how to use Barrel and its core opensource foundations in your own projects, why we build it in Erlang and how w’ expect to maintain this opensource product and the different libraries we have built along the years.
Watch