A blog on software engineering by Trevor Brown

Migration to OpalStack

In early October I got notified that WebFaction, the hosting company I was using, was migrating all accounts to tsoHost by June 2021. I had really liked WebFaction so I was disappointed to hear this. Then on October 16th WebFaction emailed me again saying that my account could not be migrated to tsoHost because I was using some WebFaction features that were not available on tsoHost. Because my account could not be migrated it would be closed by December 9th, 2020! This gave me less than 60 days to find a new hosting company and move all my sites over to it. I have about a dozen sites so it was going to take a while to get everything moved.

Performance of Elixir's System.get_env/0 Function

At work I was debugging a performance issue in one of our Elixir applications and stumbled across the strange implementation of Elixir’s System.get_env/0 function. In this blog post I’ll show how it caused performance issues for the application I was debugging and I’ll also propose a better implementation of the function. I’ll conclude by explaining why the better implementation is not used yet.

Elixir Flame Graphs

Flame graphs are a way of visualizing profiled software by representing the call stack as a graph of horizontal layers with the x axis representing the time of each call and the y axis representing the nested calls on the stack as stacked layers. Flame graphs make it easy to see how long a function takes to execute as well how often each function is invoked.