Lonestar ElixirConf

Feb 28 - March 2, 2019

Austin, TX

Training Classes

Frank Hunleth
Device to the Cloud with Nerves and NervesHub
Beginner, Intermediate

Course Description

The Elixir language and Erlang runtime provide a uniquely robust and productive environment that runs well from embedded to server. This class extends on previous Nerves training to the cloud for device/server communications and device management with NervesHub. Attendees will assemble real devices and build out the software step-by-step for a simple multi-user game with the help of the authors of Nerves.

We'll spend the first half of the day building the device and getting comfortable with developing and debugging on Nerves. If you've attended previous Nerves courses, this one will have greater emphasis on networking and device provisioning. The second half transitions to managing devices with NervesHub and developing a simple companion Phoenix application.

The workshop is appropriate for beginners and expert Elixir programmers alike since it focuses more on embedded development than pure coding. Since the Nerves development is rapidly improving, even veteran embedded Elixir programmers will learn new ways of making their development cycle better. Beginners to Elixir are highly encouraged to create a couple toy projects and learn about GenServers and OTP releases beforehand.

Bio

Frank Hunleth designs embedded Linux-based software that can be found in products spanning the medical, consumer, telecommunications and defense industries. His work on high density VOIP switches in the 1990s eventually led him to discover Erlang. Since then, he has re-implemented Erlang design elements in everything from a cutting edge diabetic screening device at LKC Technologies to motion controlled UI frameworks at Hillcrest Labs. He started the open-source Nerves project to make it easier to use Erlang in a cross-compiled environment.

Chris Keathley
Building Resilient, Distributed Systems with Elixir
Intermediate, Advanced

Course Description

One of the most exciting features of Elixir is the ability to connect multiple nodes together. Because distribution is built directly into the language’s runtime, those of us in the Elixir world have access to a number of powerful abstractions for building distributed systems.

But distributed Erlang comes with several caveats and warnings. In this training we want to both demystify some of the warnings while reiterating others.

During this training you’ll get hands on experience with distributed Erlang by building real solutions to real world problems. You’ll learn how to harden your solutions against network and hardware failures using a test harness designed to inject failures into your cluster. While the goal is to provide an understanding of the primitives available in Erlang and Elixir for building distributed systems, we’ll also discuss some of popular libraries available in the Erlang and Elixir ecosystems such as partisan and riak_core. Finally we'll finish the day by deploying our system to a cluster in AWS.

Bio

Chris is a software engineer building services and applications for Bleacher Report. Although he started out writing C for embedded systems, these days he spends his time in Elixir, Haskell, Go, and Rust. When not writing code for work, Chris can be found writing code for fun, talking about the joys of functional programming, playing pinball, roasting coffee, or building lego with his kids.

Rob Keefer
Introduction to Concurrent Programming with Elixir
Intermediate

Course Description

Whether you have experienced the awesomeness of developing with Elixir and Phoenix, or simply want to learn how to take advantage of modern multi-core CPUs, the concurrency that Elixir provides is a great start to amping up the performance of your applications.

In this hands-on workshop you’ll be introduced to concurrent programming concepts and the methods for implementing these concepts in Elixir. At the end of the workshop you will have built a fault-tolerant, multi-process communication application.

Topics covered in this workshop include working with multiple processes and Elixir specifics such as GenServers and Supervisors.

Bio

Rob Keefer works with organizations to envision and develop web and mobile applications that promote peace of mind for users and decision makers alike. He likes to work with interdisciplinary teams in solving complex problems. When he is not building systems that make people awesome, Rob enjoys distance running and cycling.

Ben Marx
Building Resilient, Distributed Systems with Elixir
Intermediate, Advanced

Course Description

One of the most exciting features of Elixir is the ability to connect multiple nodes together. Because distribution is built directly into the language’s runtime, those of us in the Elixir world have access to a number of powerful abstractions for building distributed systems.

But distributed Erlang comes with several caveats and warnings. In this training we want to both demystify some of the warnings while reiterating others.

During this training you’ll get hands on experience with distributed Erlang by building real solutions to real world problems. You’ll learn how to harden your solutions against network and hardware failures using a test harness designed to inject failures into your cluster. While the goal is to provide an understanding of the primitives available in Erlang and Elixir for building distributed systems, we’ll also discuss some of popular libraries available in the Erlang and Elixir ecosystems such as partisan and riak_core. Finally we'll finish the day by deploying our system to a cluster in AWS.

Bio

Ben is the software architect at Bleacher Report, co-author of Adopting Elixir and co-organizer of the Erlang Elixir meet up in San Francisco. In his free time, he's also programming in Rust, playing guitar, and building guitar pedals and modular synths.

Greg Mefford
Build a Smart Camera with Nerves
Beginner, Intermediate

Course Description

In this course, we will build a Raspberry Pi Zero W-based video-streaming webcam that can scan barcodes on the camera itself and be configured using a GraphQL API.

This session is beginner-friendly. That includes those who are new to Nerves, new to Elixir, or even new to working with hardware. Some programming skills will be required, but working code will be provided along with the hardware, so you only need to make changes that you’re comfortable with. It’s unlikely that you’ll melt, damage, or ruin anything. ;)

You'll also get to take home the hardware and all the skills you'll need to customize it and use it for your own projects.

This class is an update to ElixirConf 2018 "Less-Pain Embedded Systems with Elixir and Nerves" training, and includes all the latest changes to the Nerves tooling and ecosystem.

Bio

Greg is a member of the Nerves core team and loves to help new people get involved in the Nerves community, whether by making the tools easier to use, writing documentation, answering questions, or giving presentations.

Justin Schneck
Device to the Cloud with Nerves and NervesHub
Beginner, Intermediate

Course Description

The Elixir language and Erlang runtime provide a uniquely robust and productive environment that runs well from embedded to server. This class extends on previous Nerves training to the cloud for device/server communications and device management with NervesHub. Attendees will assemble real devices and build out the software step-by-step for a simple multi-user game with the help of the authors of Nerves.

We'll spend the first half of the day building the device and getting comfortable with developing and debugging on Nerves. If you've attended previous Nerves courses, this one will have greater emphasis on networking and device provisioning. The second half transitions to managing devices with NervesHub and developing a simple companion Phoenix application.

The workshop is appropriate for beginners and expert Elixir programmers alike since it focuses more on embedded development than pure coding. Since the Nerves development is rapidly improving, even veteran embedded Elixir programmers will learn new ways of making their development cycle better. Beginners to Elixir are highly encouraged to create a couple toy projects and learn about GenServers and OTP releases beforehand.

Bio

I’m in a constant state of wanting to make the world around me bend to my imagination. At one time I wondered how hard it would be to start my motorcycle from my phone. Rewiring the motorcycle and writing an interface was easy, but connecting it all together proved to be a challenge. A challenge that would define my career. That invisible, often impenetrable layer in the air between all the hardware in the world has become my stomping ground. Hardware is hard, so I’ve been working on nerves to make it easy.

Bruce Tate
Elixir and OTP Sandbox
Beginner, Intermediate

Course Description

We learn best by trying and playing. This course will let you do just that by giving you a small sandbox that expands throughout the day until you have a robust suite of tools to choose from.

In this fully lab-driven experience, you'll learn the Elixir basics. We'll build Mix projects to create a basic game, and then wrap those games for consumption from both modules and OTP processes. We will:

  • Take a rapid tour through basic Elixir code constructs and data types
  • Learn how to navigate the Elixir ecosystem to find documentation you need
  • Write a basic project to make a game with an API layer
  • Consume that game in a command line application
  • vConsume that game in an OTP application

This course is lab-based! You'll encounter 45 minutes of lab work for every 10 minutes of lecture. Come to write some code! Come to learn quickly!

Bio

Bruce is a mountain biker, climber, and father of two from Chattanooga. He is the author of more than ten books, including Seven Languages in Seven Weeks, Programming Phoenix, and Adopting Elixir. As the founder of groxio.com, he offers leading edge Elixir training for Elixir, OTP, Phoenix and Scenic. He is also the editor of the Elixir line of books from the Pragmatic Bookshelf.