Privacy-oriented alternatives to Google Analytics for 2023

Google Analytics is perhaps the analytics platform of our time. But should it be? It’s many features and the free plan is what made it popular, but its invasion of user privacy should not be overlooked. Here are some good alternatives for 2020.

Implementing a custom ExUnit assert to test PDF output

Making a custom assert can clean up and DRY your tests. Here is how I refactored a few ExUnit tests to use a single assert to test PDF output.

Ecto embeds have IDs by default

When you use Ecto’s embeds_one to embed another schema backed by JSONB, Ecto will assign an ID and complain if you try to replace this embeded record without it.

Converting snake_case keys to camelCase in Elixir

Converting a snake_case map keys to camelCase is a pretty common task in the snake-case-style languages working with the JavaScript frontend. Here are the basics in understanding how you can convert maps to camelCase style in Elixir.

How to solve DNS resolution in Fedora 32 Docker containers

After little trouble with running Docker in Fedora 31 I found myself yet again in a similar situation. This time the DNS inside Docker containers could not resolve hostname.