Welcome! Submit your posts for the next ElixirWeekly!

The Secret Behind Elixir Operator Re-Definitions: + to -


This article comprises things like creating new definitions for existing operators.

Extra Cheese

  1. Live Demo with Explanation
  2. Humour Touch
  3. Screen Shots

Fleshing out URLs with Elixir

Step one of crawling a web page is getting a fully fleshed out URL pointing to that page. The problem is that people usually think of URLs in fuzzy, incomplete terms. Thankfully, fleshing out the missing details is simple with Elixir.

Benchmarking guard clauses

I used to think that because length/1 was slow in guard clauses and could easily be replaced by pattern matching, that all guard clauses should be replaced by pattern matching. Turns out, some of those guard clauses are really quite quick!


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.

Looking for feedback about stdlib Logger improvements!

Posted a new proposal to the mailing list, please take the time to read over it and let me know your thoughts! As new features can only be added if they’re supported on the mailing list, it’s vital that thoughts make it there :)


Three tutorials covering deploying Phoenix apps to Google Cloud

For those interested in deploying an Elixir/Phoenix app to Google Cloud, I’ve posted three getting-started tutorials on Google’s community site:

#TIL: mix hex.docs open ecto

I love that mix hex.docs open ecto opens Ecto’s docs in my Browser. I’d love to have something like mix hex.readme open plug to open README.md files just as easy.

SpawnFest Registration Deadline extended

Given the current rage in team registrations (we have 28 already 😱), we decided to extend the registration deadline for @spawnfest one more day! #erlang, #elixir, #lfe devs… you have until tomorrow to register your team at https://spawnfest.github.io/registration and win some awesome prizes!

IntelliJ Elixir v6.7.0

  • Elimination of accidentally quadratic/maybe exponential, Data and Chart, negative-look-ahead in stab (do or fn body) parsing that led to slow parsing and slow reparse on hitting Enter.

Installation Instructions

Released: A major update to the Honeybadger Elixir client!

Hey all, we recently released a major update to our error reporting client for Elixir at Honeybadger. Check it out!

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

Less than 1 week to go for @spawnfest!

Join us next weekend for a world-wide Beam-based hackathon at SpawnFest! You can win some amazing prizes provided by our sponsors :)

Check out PlugCheckup


PlugCheckup provides a Plug for adding simple health checks to your app

Compatibility macros for child specifications


Provides compatibility macros for Supervisor.child_spec/2 inside libraries which support Elixir versions older than v1.5. Minimal, but it works!

observer_cli 1.2.1(visualize erlang nodes on the command line

All observer_cli Users are encouraged to upgrade to version 1.2.1.

  • Add application status UI.
  • Improve the rendering of UI(More efficient).
  • Rearrange the UI and adjust the color(Easier to understand).
  • Automatically adjust the row of the UI.
  • Upgrade recon to 2.3.4.

Atom Elixir Formatter 0.4.4

Atom Elixir Formatter has received several improvements in the last month:

  • Preserves document metadata (bookmarks, folds, etc) across formatting
  • Supports conditional formatOnSave based on .formatter.exs file presence in project
  • Dismisses outstanding notifications automatically on format success
  • Full support for Windows

Phoenix & Elm landing page (pt.1)

I have started a new tutorial series in which we will be covering the following topics:

  • Create a new Phoenix project.
  • Add a new Phoenix context for marketing leads.
  • Add an API endpoint to insert a lead’s data into the database.
  • Build the landing page template using Phoenix and Bulma as our CSS framework of choice.
  • Add Elm to the project and build a subscription form that points to the API endpoint described previously.
  • Add Google’s reCAPTCHA widget to the Elm subscription form, and how to render it and how to handle a visitor’s reCAPTCHA response.
  • Build an HTTP client using HTTPoison to verify the token received by the reCAPTCHA widget against Google’s reCAPTCHA API from our backend.
  • Build another HTTP client to subscribe leads to an email marketing service such as MailChimp.
  • Add tests covering the subscription process using mocks for the HTTP clients.


I hope you enjoy it and happy coding!

Eleventh monthly bors newsletter

This November, we added a permission mode for users who can “bors try” a PR but can’t “bors r+” it https://bors.tech/newsletter/2017/12/01/tmib-11/

The journey of solving an Elixir exercise on Exercism and how that led me to look beyond the impostor syndrome

This articles talks about a journey that started with an intention to better understand some of the concepts in Elixir via learning by doing and it takes one through the roadblocks I faced along the way and how I found ways of getting unstuck that lead me to reflect about things beyond Impostor Syndrome and how the overall learning experience helped me to be a better programmer in general.


IntelliJ Elixir v6.6.0

  • EEx support
  • Lexer for EEx format
  • Parser for EEx format
  • EEx as a Template Language

    • Any file with .eex as the final extension will be treated as EEx. To determine the Template Data Language, the .eex extension will be stripped and any remaining extension will be looked up to get the File Type and its associated Language. For example, *.txt.eex will be EEx with Plain Text (.txt) as the Data Template Language. Likewise, *.html.eex will be EEx with HTML as the Data Template Language. There’s no need to register *.txt.eex or *.html.eex or any other *.DATA_TEMPLATE_LANGUAGE_EXTENSION.eex pattern explicitly: the nested extension will be looked up using the normal extension setup.
  • Decompile LocT chunk for private macros and functions and the derived names of anonymous functions.
  • Parse HEAD-<SHA1> as 0.0.<SHA1> for sorting versions from homebrew homepath. It will almost always be last unless there is an unknown version, which uses 0.0.0.
  • Ensure any unparsable version sorts as 0.0.0 (UKNOWN_VERSION).

Installation Instructions

Benchee 0.11.0 released

Recently released benchee (the benchmarking library of your choice ;) ) in version 0.11 including a bugfix and optionally more statistics!

Turning a chat application cloud native


How do you deploy your application? Is Docker necessary, or even useful? What about service discovery, configuration and testing. Let’s take a simple chat application and make it scalable, fault-tolerant and available.