Digests » 209
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
Who knew deep links could be so complicated? Fortunately hosting the server-side files for iOS Universal Links and Android App Links is the easy part with Phoenix.
The main feature in Elixir v1.9 is the addition of releases. A release is a self-contained directory that consists of your application code, all of its dependencies, plus the whole Erlang Virtual Machine (VM) and runtime. Once a release is assembled, it can be packaged and deployed to a target as long as the target runs on the same operating system (OS) distribution and version as the machine running the mix release command.
The BEAM is well-known for its fault-tolerant properties. It's quite performant and memory efficient for many use-cases. But occasionally we find ourselves hitting the limits of what the BEAM can provide us. What happens when we need to interface directly with hardware? Or when a specific part of our application needs to be as fast as possible?
In the previous article focused on live_redirect, we’ve seen how in Phoenix LiveView we can change the URL without changing the location or refreshing the page. In this way we can keep the URL updated with the current page state, making easier for the user to bookmark or share it.
I always loved the idea of Property Based Testing, it was the most mind blowing idea I encountered while learning clojure many years back. However, I always found it hard to apply in practice. I barely encountered the “easy” case where an operation was reversible (if I encode a term and then decode it again it should be equal to the original term, for instance). And the properties I came up always seemed to loose to catch any bugs.