Digests » 205


Get 40% off your entire Manning.com order!

Manning Publications is always looking to help developers grow. It doesn't matter what your background is, there's something for you to discover. This week, you can get 40% off your entire Manning.com order, including our range of Elixir books! Whether you're looking to pick up Phoenix or just improve your skills with the syntax, there's a way for you to boost your Elixir prowess.

this week's favorite

Add a Progress Bar in the Phoenix File Upload app

We select a file to upload and once uploaded we see it in the upload list with a thumbnail (if image or PDF). Since we are using it in localhost the upload is fast, even with large files.

CircleCI Orbs: Building an Orb in Elixir

This article is directed to anyone who wants to build an orb in CircleCI, a continuous integration platform. I will try to explain some issues I had creating an orb for Elixir projects, and some common expected behaviour and functionality that should be included in your new orb.

Elixir Circuits Quickstart Firmware

The Elixir Circuits quickstart firmware lets you try out the Elixir Circuits projects on real hardware without needing to create a Nerves project, install Elixir on Raspbian on a Raspberry Pi or compiling any Elixir code at all. Within minutes, you'll have a device running Nerves. You'll be able to explore the Nerves environment with toolshed, and you'll be able to blink LEDs from the device itself. You'll also be able to explore the other Elixir Circuits libraries and experiment with I2C, SPI, GPIOs, and UARTs.

4 tips for mastering test-driven development

Need some guidance for the best way to carry out test-driven development (TDD) with Elixir? Read on. Here, we share some useful tips, such as how to isolate your code to simplify unit testing. We’ll also look at an important aspect that doesn’t often get tested—database-migration rollback—as well as how code coverage could prevent you from omitting testing some important parts of your code. Finally, there’s a helpful overview of property-based testing—a new way of writing tests that’s a great complement to unit testing.


Dynamically typed languages use tagged values to solve the problem. For instance, Erlang uses first two bits of a machine word to differentiate between objects on heap (boxed values), lists, and immediates which use next two bits to further differentiate between small integers, ports, pids, etc. It’s important to understand here that those bits are tags, not types. In other words, if we have a user type foo we can’t reconstruct it using the tags. Erlang does have types in the form of type specifications but they are not used by the compiler.