Digests ยป 166

this week's favorite

Optimization Traps and Pitfalls

Back after the summer holidays, this blog will now change tracks and start a series of blog posts about Static Single Assignment (SSA). This first installment will set the scene for the posts that follow by looking at the traps and pitfalls one can fall into when trying to optimize BEAM assembly code.

Errors are not exceptional

TL;DR. Only use exceptions for truly exceptional cases. Try OK.

Dark Corners of Erlang and Elixir Tracing

Tracing as a tool is immensely productive. It cannot be overestimated - especially in production, but also in development when debugging our own mistakes. In the previous article I covered why we should use that facility and why they invented it in the first place.

Debugging your Phoenix, Elixir and Rails applications inside Docker containers

Elixir has a great REPL(iex) which allows you to run arbitrary code and see its results. And the same `iex` can be used to start your mix app with an attached REPL. If you are using phoenix you can get this up by running `iex -S mix phx.server` instead of `mix phx.server`.

String.Chars Protocol for Elixir PIDs

I recently did a live coding session on a 3d audio server built in Elixir. This project involves quite a complicated supervision tree where GenServers are created and destroyed dynamically based on users joining a room and moving around. As such this requires in-depth logging of processes in the application