Digests » 155

this week's favorite

Interpreter optimization

The BEAM interpreter in erts has been completely re-written in OTP 21. Most of the instructions have remained the same, but the perl scripts used to generate the C code have a new implementation. This blog post will look at some of the optimizations that were possible because of those changes.

Elixir at PagerDuty

When PagerDuty was founded, development speed was of the essence—so it should be no surprise when we reveal that Rails was the initial sole bit of technology we ran on. Soon, limitations caused the early team to look around and Scala was adopted to help us scale up.

Generating Test Fixtures with Wireshark

My in-progress Elixir-based Bitcoin node is woefully lacking on the test front. This is especially problematic considering how finicky the Bitcoin protocol parsing and serialization process can be.

Deconstructing Elixir's GenServers

Instead of using object instances like in object oriented languages, Elixir uses GenServers (generic servers) to store state in separate processes. GenServers can keep state and run code asynchronously, which is useful for keeping data available without passing it from function to function.

Shake Before Use: 3 Things to Consider When Hosting Elixir

Some of Elixir's most powerful capabilities are misunderstood or not accounted for at all. Choose the right host more quickly by understanding the unique strengths of Elixir and how they should impact hosting decisions.