Peer Stritzinger
GRiSP Inventor, Distributed Computing in IoT and everywhere
Peer discovered Erlang in 2007 and has been relying on it ever since. Fascinated by all its emergent properties which are quite non-obvious from afar. Around it he found the best developer community one could wish for being part of.
He is Founder and Director of Peer Stritzinger GmbH which created GRiSP www.grisp.org, a platform to run Erlang on small embedded systems and focusses on building Automotive, Industrial IoT and Smart Cities applications and tries to use Erlang technology wherever useful. Participating in several EU funded research projects, he is trying to push the envelope for what can be done with Erlang and the other languages on the BEAM.
Peer’s previous experience ranges from low level device drivers to functional languages in industrial and automotive applications. He initially mastered in physics at the Technical University Munich. He has been working self-employed as a developer since 1987 and also consulted in applied cryptography and protocol design and implementation. He is since ever living and working in the idyllic countryside west of Munich, Bavaria.
Past Activities
Code BEAM SF
09.00 - 17.00
Tour the embedded BEAM with GRiSP and Nerves
If you're considering using Erlang or Elixir for your next IoT device or just wanting to learn more about embedded systems, this class will give you a tour of the two major BEAM-powered embedded system projects. Both projects build on the rock solid reliability and productivity of the Erlang VM, and are used in industrial projects around the world.
OBJECTIVES
- To get real practical experience with embedded systems
- Know why the BEAM virtual machine is a good fit for such projects
- Understand the basic concepts and characteristics of embedded systems
- Familiarity with Nerves and GRiSP platforms, including the foundation to keep developing your own project
- Have fun!
PREREQUISITES
- A Mac or Linux laptop. Windows laptops with a Linux VM can work, but verify USB connectivity
- Have a working installation of Erlang and Elixir
- Working USB ports - check if blocked by a corporate firewall or if you have USB C, bring an adapter
- No hardware needed! We'll provide a software installation checklist a week before the training
TARGET AUDIENCE
This tutorial is for those with: * basic knowledge of Erlang or Elixir * familiarity with gen_server/GenServer * none or only a little experience with either GRiSP or Nerves)
COURSE OUTLINE
This is a unique class led by the creators of both Nerves and GRiSP that will not only get you started with both projects, but will also help you understand the differences and tradeoffs. The class is hands-on.
We'll provide hardware and labs for you that cover the basics, interacting with low level hardware, networking devices, and interoperability.
Code BEAM Lite Munich 2018
09.00 - 17.00
GRISP training - IoT Lab with GRiSP, Bare Metal Erlang, Sensors and Actuators
- Want to learn how to run Erlang without a OS kernel?
- Want to deploy software to a small wireless embedded system?
- Want to interact with hardware such as accelerometers, thermometers, hygrometers, stepper motors and a little robot?
Then this is the course for you!
Join this full day free tutorial and learn how to create and deploy Erlang projects on the GRiSP embedded board.
Learn how to connect to GRiSP using Wi-Fi and how to interact with and write your own drivers for hardware peripherals.
We will provide access to hardware such as GRiSP boards, PMOD devices and other accessories.
Knowledge about programming is required and some basic knowledge of Erlang is a plus.
This free tutorial is limited to 10 attendees only, so book now.
This free tutorial is Sponsored by Peer Stritzinger GmbH
Code BEAM Europe 2022
13.50 - 14.35
Digital Twin, Planning and Control with Erlang
Showing you the current state of a smart industrial transport system project we are building using. For this, we are currently developing a new “Industrial GRiSP” hardware which will be shown for the first time in public. Based on the same hardware architecture as GRiSP2 I’ll show how we use custom-built PMODs and GRiSP2 boards to prototype while the new hardware was designed.
The final goal is to make a modular conveyor system with distributed built-in intelligence to prove what we call “Plug & Produce” operation.
There will be a demo of a Digital Twin with animated visualisation of the manufacturing conveyor transport system in Erlang. If the timing allows it, it will be connected live to a real conveyor system in a producing factory. The digital twin is connected to the sensors and actuators via an Erlang-based open-source OPC-UA protocol stack we have been developing.
Outlook: Using the complete state of the real world through this digital twin as starting point for a distributed planning algorithm in Erlang allows distributed online (while the world is moving) optimal planning of the material flow on the conveyor.
OBJECTIVES
Introduce digital twins, the manufacturing use case with an outlook to distributed planning algorithms.
AUDIENCE
Should be something in there for everyone.
Code BEAM Lite Berlin
09.00 - 17.00
Hands on Embedded-Systems with GRiSP - Sensors, Actuators and Robots!
COURSE OUTLINE
The one day GRiSP tutorial will get you familiar with the GRiSP hardware boards and its capabilities running embedded Erlang and Elixir applications. We'll learn how to set up an Elixir or Erlang application for the GRiSP board, deploy it and interact with different hardware components directly from Erlang. After the tutorial, there will be a workshop where you can develop prototype embedded applications together with the group, having access to the GRiSP hardware and many sensors and actuators and we’ll also bring some robotics hardware to work with! We have tasks for every level.
Embedded Hardware will be provided and the tutorial price includes a GRiSP board to take with you.
More information at https://www.grisp.org/
AUDIENCE
- Elixir and Erlang developers who want to learn about the platform and embedded systems development
- Embedded systems engineers who want to try out Erlang or Elixir for systems
OBJECTIVES
- Learn how to use our rebar3 and mix based advanced development tools to develop embedded or IoT systems for the GRiSP board
- Interact and work with real hardware
- Develop example embedded applications together
PREREQUISITES
Programming skills in Erlang or Elixir.
Please bring your laptop. Micro USB cables and Micro SD-card readers are helpful but not necessary (we will bring some).
Code BEAM V Europe
12.20 - 13.00
Managing a tera of networking flows using Erlang
As part of the 2021 TeraFlow research group, we are developing a distributed Software-Defined Network (SDN) controller targeting a tera of managed flows in beyond 5G networks.
After an overview of what an SDN controller is and the protocols involved, we will introduce our architecture, the concerns, constraints, and challenges. Then we will perform a live demo showing the progress so far. Finally, we will present the open-source projects created or improved as part of the development.
OBJECTIVES
Give the audience a good idea of what is a Software-Defined Network (SDN) controller, and some of the challenges of developing a scalable one.
AUDIENCE
Developers and decision-makers interested in Software-Defined Networking.
Code BEAM America 2021
10.40 - 11.05
Fireside chat of Embedded programming on the BEAM
Peer and Frank talk discuss what’s happening with embedded systems in the GRiSP and Nerves communities. This will cover current challenges and exciting developments to watch for in 2022.
Code BEAM V Europe
13.10 - 13.50
Jumping gen_servers! A new way of building distributed applications
Distributed applications in Erlang have been static, limited and manual. Couldn't they be dynamic, limitless and automatic instead? Heterogenous large networks with interesting topology and varied properties of nodes and links call for a new way of building such applications.
We will together explore building blocks made out of processes, messages, links and monitors sprinkled with practical experiments. Distributed self managing computation and communication, seeking new emergent behaviours.
OBJECTIVES:
Kick off a new way of building distributed computing showing code everyone can understand and see what new properties emerge. Giving an outlook how we can get further into the rabbit hole of Erlang Distributed possibilities.
AUDIENCE:
Distributed computing practitioners, interested in scalable, reliable self managing systems.
Code BEAM V Europe
15.20 - 15.50
Ask me anything about Erlang Ecosystem Foundation
Short update from the Erlef Team and then you will be able to ask them any question you like about their work.
Code BEAM STO V
17.35 - 18.15
How the BEAM boots and what can be done about it
TALK LEVEL: BEGINNER / INTERMEDIATE / ADVANCED
The Erlang VM does a lot of work loading and transforming many little BEAM files before it is ready to go. When starting Elixir even more beam files have to be loaded. Doing this work over and over again leads to unfavourable startup time. Most clearly this shows on embedded systems with weak CPUs, inefficient files systems and storage and no way to cache the filesystem when switched on. But this extra work also shows up everywhere the Erlang VM is started again and again, e.g. during development and in CI/CD systems.
In this talk, we explore what exactly is done by the BEAM loader and how we can move this work to release build time so it doesn't have to be done again and again on startup.
Transforming all the little BEAM files into normal object files a static or dynamic linker can use and relocate gives us several benefits at the same time:
- Ready to run in place beam code - reduced startup time
- Faster cloud spin uptime with standard Erlang VMs
- Single executable releases - wouldn't it be nice to deploy just a single-file executable that contains the Erlang VM and the complete relates BEAM files?
- Deploy complete Erlang releases on System on Chip Micro-Controllers by running everything directly in firmware flash
In this talk, you will get a clear explanation of how all this works and demos of the implementation.
THIS TALK IN THREE WORDS
Fast
BEAM
Start
OBJECTIVES
- Learn what happens during code loading in BEAM
- Learn about ELF object files and relocation
- Understand how beam files can be preloaded to run in place
TARGET AUDIENCE
- People who want to learn about the inner workings of the BEAM
- People who are interested in startup time speedup
- People who care about single executable release+VM deployment
Code BEAM V America
13.30 - 14.10
EEF - looking back at 2020 and forward at 2021
TBA
Code BEAM SF
11.25 - 12.10
Building a IDE, compiler and runtime for a graphical distributed data flow language in Erlang
Control systems have their own programming languages and paradigms. Progammable Logo Controllers (PLCs) are used to control everything from a garage door opener to a whole factory. We have built a compiler for a distributed variant of PLC programming language (IEC 61499) that compiles to BEAM files which run in Erlang VMs. As a web frontend to a Erlang node we built a IDE for the textual and graphical representation. PLC programme run distributed from small embedded systems to the cloud unchanged.
THIS TALK IN THREE WORDS
IoT
PLC
IDE
OBJECTIVES
Show how a complete graphical IDE, compiler and runtime can be built with Erlang and run in a small embedded system.
TARGET AUDIENCE
Elixir and Erlang devs interested in web based IDE's, PLCs and IoT
Code BEAM STO 2019
17.45 - 18.30
Introducing the Erlang Ecosystem Foundation
Thursday evening keynote is extra special this year, you can hear all about the newly formed Erlang Ecosystem Foundation. Founding members of the Erlang Ecosystem Foundation will join us to share the journey and goals of the foundation!
The Erlang Ecosystem Foundation's goal is to grow and support a diverse community around the Erlang and Elixir ecosystem, encouraging the continued development of technologies and open source projects based on/around its runtime and languages.
Code BEAM STO 2019
10.35 - 11.20
Erlang distribution: going beyond the fully connected mesh
In our search to improve Erlang distribution as cluster sizes grow and topologies become more dynamic, we have tried many things: prototyping solutions to ahead-of-line blocking using fragmented packages, using UDP for distribution, and experimenting with Time Sensitive Networking (TSN) for real-time Erlang in industrial settings.
We will talk about our experiences so far and build upon the work of the OTP team by experimenting with a generic behaviour to make custom Erlang distribution implementations easier.
OBJECTIVES
Give a brief overview of the history and problems with Erlang distribution, look at the current state of the art and propose areas for further work and research.
AUDIENCE
People interested in Erlang internals, improved distribution protocols and who want to participate in enhancing Erlang's distribution.
Code BEAM SF 2019
14.30 - 15.15
Erlang Distribution via UDP combined with Ethernet TSN
After some initial experiments we now are looking at using UDP for Erlang Distribution. Ethernet TSN (=Time Sensitive Networking) is a set of new standards that extends Ethernet by controlling latency and redundancy on Layer-2 making it possible to implement hard real-time reliable datagram service.
TARGET AUDIENCE
These topics have IoT and Industrial use cases in mind. Attendees can learn about the technology described.
Code BEAM SF 2019
17.45 - 18.30
Introducing the Erlang Ecosystem Foundation
Thursday evening keynote at the Code BEAM SF where you can hear all about the newly formed Erlang Ecosystem Foundation. A talk from Jose Valim, Peer Stritzinger, Fred Hebert, Miriam Pena and Francesco Cesarini who are sharing the journey and goals of the foundation that we've all waited for!
The Erlang Ecosystem Foundation's goal is to grow and support a diverse community around the Erlang and Elixir ecosystem, encouraging the continued development of technologies and open source projects based on/around its runtime and languages.