Digests » 128


Operations, maintenance, and performance monitoring

WombatOAM: Everything you need to know about your Elixir system.


Beyond the Business Case

This post is an expansion of a presentation that I gave at the first Miami Functional Programming meetup. The basic motivation is that there are an enormous number of presentations and talks floating around about making the business case for functional programming, but I find that those are often not very effective in real business settings.

Macro Madness: How to use `use` well

In Elixir, macros are used to define things that would be keywords in other languages: defmodule, def, defp, defmacro, and defmacrop are all macros defined by the standard library in Kernel. In ExUnit, assert is able to both run the code passed to it to see if the test is passing, but also print that code when it fails, so that you don’t need a custom DSL to show what was being tested. In GenServer, use GenServer defines default implementations for all the required callbacks.

Erlang Garbage Collector

Erlang manages dynamic memory with a tracing garbage collector. More precisely a per process generational semi-space copying collector using Cheney’s copy collection algorithm together with a global large object space.

Beyond Functions in Elixir: Refactoring for Maintainability

Elixir can be a beautiful language, it has Ruby’s syntactic elegance, Lisp’s metaprogramming, and many functional features of languages like F#. The user has license to use many idioms and features: pattern matching, macros, behaviours, protocols, GenServers, ETS, etc. Working successfully in Elixir means choosing when to leverage a particular language feature for its ergonomics at the cost of grokking its complexity.

Fleshing out URLs with Elixir

Affiliate Crawler works by being given a starting URL that points to your content. It crawls that page, looking for external links that can potentially be monetized, and internal links to crawl further.