2 Biggest ExUnit Improvements in Elixir 1.7

This article comprises of two biggest changes of ExUnit.

  • Arguments in the failure report
  • Running mix test with the failed flag


artilce Image

Building a Better Receive Loop

Check out how switching from using Erlang’s :gen_tcp in active mode to passive mode drastically simplified my in-progress Elixir-based Bitcoin full node!

Configuring Ubuntu and Nginx for Phoenix performance

This episode covers some basic changes I made to a site running in production that increased the requests per second it could handle by 100% to 300% depending on type of page.

This is a follow-up to two previous screencasts:

ElixirWeekly: The Elixir Community Newsletter, covering community news you easily miss, shared on ElixirStatus and the web, in one email every Thursday.

[Podcast] Elixir Mix - Jarno Lindqvist discusses GDPR

In this episode of Elixir Mix, the panel talks to Jarno Lindqvist about GDPR. Jarno is works for SAS institutes in the Finland office working mostly on data management, technical architecture, and GDPR regulation. They talk about what GDPR is, what developers need to understand about it, and the type of data that must comply with GDPR regulations. They also touch on data security and protection, the right to be forgotten, and more!

Listen to this episode and subscribe at https://devchat.tv/elixir-mix

My experience as a beginner in Elixir. And why you should try it too…

In this post I will tell you about my experience in coming to Elixir and how it was to be a beginner in this language. I also tell you about the usecases for Elixir, and its highlights. After reading this blog post, maybe you’ll want to give Elixir a try. https://medium.com/@JPYamamoto9/my-experience-as-a-beginner-in-elixir-and-why-you-should-try-it-too-be4a0bd597b8

Using :erlang.trace/3 to listen to garbage collection events

I wrote in more detail about how we’re measuring memory usage in benchee! http://devonestes.herokuapp.com/using-erlang-trace-3

Lesson 2: Word Count is updated for Elixir 1.7


I’ve just updated Lesson 2 on Alchemist camp to improve video quality. This recording is in a much larger font size and with a better mic than the original video from December

Lesson 1 was also updated very recently with version 1.65.

Why I’m Loving Elixir

Elixir Why I’m loving Elixir Development

I have been a software developer for over 10 years now when I started as a developer back then “Frontend” was called a webmaster. We used Ajax calls and the popular JavaScript frameworks were JQuerry and MooTools. Java with Tomcat and PHP were the popular backend languages. Since then development languages, frameworks, and toolsets have improved drastically. I personally went from HTML/CSS to PHP, then Java, then ActionScript (I do miss ActionScript) to JavaSctipt, Python, Node and so forth. But I have always stayed within Object Oriented Programming and Inheritance Programming and never really done any Functional Programming. - https://almog.io/why-im-loving-elixir/

ExVenture Updates for July 2018

ExVenture is a multiplayer text-based game server (aka a MUD). This month added a new service called Gossip that does cross game chat.


Shameless plug: Check out @elixirstatus' other community project:

Credo, a new static code analysis tool that acts as a code linter, but also focusses on teaching coding practices and code consistency.

Envío → fancy wrapper for Elixir Registry

Envío is a set of handy tools to simplify dealing with Elixir Registry. It includes the instance of Registry to be used out of the box, as well as scaffolds to ease producing of publishers and subscribers.

defmodule MySubscriber do
  use Envio.Subscriber, channels: [{MyPublisher, :main}]

  def handle_envio(message, state) do
    {:noreply, state} = super(message, state)
    IO.inspect({message, state}, label: "Received")
    {:noreply, state}


How to Build a Back-Pressure Queuing System in Elixir with sbroker

I wrote a blog post, which explains how you can apply a back-pressure mechanism to your Elixir application with the sbroker library.

Scheduling recurring jobs with a GenServer

New episode:

Using a GenServer to schedule work from right inside your app is easier and faster than relying on an external tool like cron jobs.

This 6 minute video contains clips from two projects where we’ve implemented this—a simple cache deleting task for Alchemist.Camp, and a logging task that runs at the same time every day on StatWatch.me.

When web requests fail in Elixir and Phoenix

I just published a post “When web requests fail in Elixir and Phoenix”

ExAws.CloudSearch: CloudSearch Service Module for ExAws (0.1)

ExAws.CloudSearch is a nascent service module for AWS CloudSearch for use with ExAws.

Version 0.1 has been released, providing basic document search support with integration to csquery. Over the coming weeks, additional features will be added with regular releases (suggest requests, document management, configuration).

The code can be found on GitHub.

Formatting Numbers

In episode #60 we’ll use the Number package to help us convert numbers to different formats like currency, percent, and phone number.


Parsing Numbers in Elixir

We wrote a new edition of our Elixir Alchemy series on parsing numbers in Elixir. Check it out here.

Very customized form helpers


This is a followup to our episode on making form inputs for lists (Ecto array types).

This time, we’re making even more customized Phoenix form input helpers. Like before they’ll allow editing a collection of entries, but instead of array types directly in a user’s schema, they’ll be fields from a has_many associated schema. We’ll work through a variety of potential pitfalls and create a very unorthodox input helper.

ExCampaignMonitor - a wrapper for Campaign Monitor's API

I wanted to use campaign monitor but nothing was available in Elixir - so I created this one: https://hex.pm/packages/ex_campaign_monitor

CSQuery: CloudSearch Structured Query Builder (1.0)

CSQuery is a query builder for the AWS CloudSearch structured search syntax. This query builder is largely inspired by csquery for Python.

Version 1.0 has been released and can be found on GitHub.

mixpanel_api_ex has been updated to 1.0.1

Package’s dependencies have been updated to latest versions. Release introduces new configuration option: active. When active == false it will not call remote API (useful for testing): config :mixpanel_api_ex, token: "<Put API token here>", active: true.

Link to the package at hex.pm.