<

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

Peer Stritzinger / Adam Lindberg
Code BEAM STO 2018
Tutorial/ 30 May 2018
09.25 - 17.00

GRISP training - IoT Lab with GRiSP, Bare Metal Erlang, Sensors and Actuators

9:00 - 17:00

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 course and learn how to create and deploy Erlang projects on the GRiSP embedded board. Learn how to connect to it 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. You will be able to buy the GRiSP board at a discount to take home with you after the course to continue developing your projects.

Knowledge about programming is required and some basic knowledge of Erlang is a plus.

Peer Stritzinger / Adam Lindberg
Code BEAM Lite Berlin
Tutorial/ 10 Oct 2019
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).

Frank Hunleth / Peer Stritzinger
Code BEAM America 2021
03 Nov 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.

Peer Stritzinger
Code BEAM Europe 2022
19 May 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.

Miriam Pena / Maxim Fedorov / Bryan Paxton / Peer Stritzinger
Code BEAM V Europe
19 May 2021
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.

Sébastien Merle / Peer Stritzinger
Code BEAM V Europe
20 May 2021
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.

Peer Stritzinger / Erlang Ecosystem Foundation
Code BEAM V America
11 Mar 2021
13.30 - 14.10

EEF - looking back at 2020 and forward at 2021

TBA

José Valim / Miriam Pena / Fred Hebert / Francesco Cesarini / Peer Stritzinger
Code BEAM SF 2019
28 Feb 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.

Peer Stritzinger / Barbara Chassoul
Code BEAM SF
06 Mar 2020
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

Peer Stritzinger
Code BEAM STO V
10 Sep 2020
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
Peer Stritzinger / Adam Lindberg
Code BEAM STO 2019
17 May 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.

José Valim / Miriam Pena / Peer Stritzinger / Francesco Cesarini
Code BEAM STO 2019
16 May 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.

Peer Stritzinger
Code BEAM SF 2019
01 Mar 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.

Peer Stritzinger / Frank Hunleth
Code BEAM SF
Tutorial/ 04 Mar 2020
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.

Peer Stritzinger
Code BEAM V Europe
21 May 2021
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.

Adam Lindberg / Peer Stritzinger
Code BEAM Lite Munich 2018
Tutorial/ 06 Dec 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

Peer Stritzinger / Adam Lindberg
Code BEAM STO 2018
01 Jun 2018
16.15 - 17.00

1000 nodes, large messages, we want it all! Prototype with new OTP 21 API

Distribution has always been a strong side of Erlang, but it has its own limitations. Projects with specific requirements often resort to external or application-level workarounds to circumvent them. As we want to keep using Erlang distribution even in extreme use-cases, we are focusing on fixing these issues.

We explain how the new API for custom distribution in Erlang 21 lets you build your own distribution protocol.  This helps us especially to prototype our extensions to Erlang distribution to scale it better and make it more universally usable.

A well-known limitation is Head-of-Line blocking. It makes the latency of messages unpredictable and it gets even worse with mesh networks.  We show the results of our prototype to fix this problem.

This prototype also is the first step to more scalability by enabling message routing between nodes.  We explain how link state routing protocols work and show how one of them which is very extensibe and which we plan to use for solve routing, discovery and maybe even global process registry.