Gaslight Elixir   

Elixir is a dynamic, functional language designed for building scalable and maintainable applications. It has enabled us to develop applications we would not have even attempted with other languages previously. Here at Gaslight we've interacted with insulin pumps, tracked vehicles in real time, and supported hundreds of people interacting with the same data, all because of Elixir.

Elixir has made problems that were difficult in other languages possible in just a few lines of Elixir code. Elixir's premier web framework, Phoenix, has also been a joy to work with and has amazed us with its microsecond request times. The Nerves Project, a way to build embedded systems with Elixir, has enabled us to move past just web development and has allowed us to begin exprimenting with embedded applications and the Internet of Things.

Elixirconf

September 2017

Two of Gaslight's passionate developers headed to ElixirConf on September 5-8 in Bellevue, Washington to give talks to the biggest and brightest in the Elixir community. ElixirConf 2017 was a chance for Elixir, Phoenix, and Nerves enthusiasts from the around the world to network, learn, collaborate, and grow. If you missed their talks, you can find them below.

Tim Mecklem

Building an Artificial Pancreas with Elixir and Nerves

People with Type 1 Diabetes have to constantly monitor & control their food, blood glucose, insulin, physical activity and other factors in order to manage this autoimmune disease effectively. Even with advancements like insulin pumps and continuous glucose monitoring, the process is still manual and error prone for many people. What would happen if someone with T1D could delegate the constant cycle of monitoring, predicting and controlling to a computer?

In this session, I'll get personal about my own journey in supporting my T1D wife using technology. You'll learn about an open source project called the Open Artificial Pancreas System, or OpenAPS, and how it closes the loop on a cycle that the rest of us take for granted. Then together we'll explore what happened when I took my knowledge of OpenAPS and Elixir and glued them together with the Nerves Project.

We'll touch briefly on the topics of hardware prototyping, reverse engineering and binary decoding and how it all came together in one project. Before the session is over, you'll see an embedded Elixir application talk to a commercial insulin pump through the power of the Nerves Project.

Learn more »

James Smith

Realtime Vehicle Tracking with Elixir and Phoenix

Our client came to us with an idea. Help students catch their school buses on time. Doing this required adding realtime bus tracking to their mobile application. I knew Elixir would be well suited for this but, I underestimated just how much.

Elixir helped us quickly parse the binary protocols of GPS devices. Phoenix helped us to send realtime updates from devices to our mobile application. Ranch made it easy to deal with the thundering herd of GPS devices trying to connect to us all at once.

This is not to say that their weren't challenges along the way. We had to deal with hardware protocols that did not always line up with their spec sheets. Communication between us and the buses had to be safe and secure. The nature of communication over the cellular network meant messages could be received out of order. The logistics of school buses that can break down or get moved to different routes meant devices had to be dynamically supervised. Even through these challenges OTP, Elixir, and Phoenix continued to shine.

In this talk discuss these challenges and talk through the solutions we came up with. We will touch on parsing binary protocols, dealing with out of order messages and adding dynamic supervision in OTP.

Learn more »

Podcast

Tim was invited to speak about his experience building an artificial pancreas with Elixir and Nerves on the Changelog podcast. Changelog is a company devoted to telling stories about developers and the things they build through digital media. Listen below to hear about his meaningful journey.

Elixir on the Blog