
Keep your EUnit teardown logic as simple as possible!
Ever had an EUnit test fixture fail with meck reporting it was “already_started”? Well I did, and here’s why…

Ever had an EUnit test fixture fail with meck reporting it was “already_started”? Well I did, and here’s why…

When dealing with a dynamically typed language, any effort to tame the beast can pay off. For Erlang, that means Dialyzer specs. The more specs added, the more helpful the tool becomes - but getting to that point can be painful. Here are some warnings I’ve seen, what they mean and how I solved them.

Handling date and times is a thorn in every experienced developer’s side. If you haven’t had the pleasure yet, you will. ;) Coming off a week of standardizing some datetimes across an Erlang app, here’s a few personal thoughts.

If you work with the .NET Framework long enough, you may eventually find yourself tasked with converting one language to another, either by request or necessity. But conversion isn’t always necessary - it’s possible (and easy!) to have one solution with multiple languages.

Have you ever tried to execute a function at some future time in Erlang? You can, with a timer, but the compiler may complain that the function you’re calling via the timer is unused. Why is that and what can you do?

I ran into a problem in Erlang yesterday that made me think… is there anyway to implement a property accessor on a record?

When you find an API to use in your app, you’ll need to access it in a specific language - not always an easy or straightforward task. As long as you’re doing all that work, why keep it to yourself? Let’s look at creating an API wrapper that you can share with others!

Becoming an Erlang developer has not always been easy, but over the last couple of years I’ve learned a few ways to tame the beast. It doesn’t need to become any other language, but there’s definitely room for improving the developer experience!

Concatenating strings and binaries in Erlang can get ugly quick. Let’s make it easier.

An API is an Application Programming Interface, but what’s that really mean? In a more practical sense, it’s one programmer hiding the (possibly messy) details of their own code behind a nice veneer, in order to make it easier for another programmer to consume it in their own program.