Build smart touch screen kiosks with Nerves and Phoenix
Touchscreen interfaces are all around us. They are used for digital signage, information kiosks, control surfaces, and more. Devices like these in the field can be difficult to maintain and often are running insecure, out of date code. In this session, we will learn everything we need to build, develop, and deploy kiosk devices using Nerves. This includes building a Raspberry Pi-based touchscreen device, learning the ins and outs of Nerves development, creating user interfaces with Phoenix LiveView, and interfacing with hardware. After everyone has built a working kiosk, we will go through the steps to maintain these devices in the field and securely update them as needed using NervesHub. This is a hands-on session and you get to take working kiosks back with you to extend, repurpose, and share. The cost includes the $200 touchscreen.
Building Scalable Real-time Systems in Elixir
Real-time applications come with real challenges—persistent connections, multi-server deployment, and strict performance requirements are just a few. Don’t try to solve these challenges by yourself—use a framework that handles them for you. Elixir and Phoenix Channels provide a solid foundation on which to build stable and scalable real-time applications. This course demonstrates several different strategies for how to build systems using Channels, and other techniques, that avoid performance bottlenecks and maintenance problems. The course is structured around lecture followed by coding, breaking the course into several digestible modules. Real-world examples are used to demonstrate concepts and allows for attendees to work together to gain an understanding of real-time tools, strategies, and pitfalls. In particular the following topics are discussed in detail: Phoenix Channels, Publisher/Subscriber Pattern, Presence. Various aspects of scalability will be discussed: performance, maintenance, cost, data integrity. Focusing on scalability and demonstrating various types of problems allows for professional developers to take key learnings back to their companies with increased confidence and knowledge.