Author Archives: David Sulc

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.5)

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) After last post, we’ve got a pretty fancy-looking pool: Unfortunately, we don’t have any sort of mechanism to make use … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.5)

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.4)

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) After the last part, we’ve made some headway but still need some workers: More useful state Let’s start by enhancing … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.4)

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.3)

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) In the previous post, we managed to get our pool supervisor to start the pool manager. Now, our next objective … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.3)

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.2)

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) Continuing from the previous post, we’re working on having a single pool of processes that we can check out to … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.2)

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.1)

A new project (This post is part of a series on writing a process pool manager in Elixir.) Without further ado, let’s get started with PoolToy: mix new pool_toy Pools will contain worker processes that will actually be doing the … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.1)

PoolToy: A (toy) process pool manager in Elixir 1.6

Contents This series of posts will guide you in writing an OTP application that will manage pools of processes. In particular, it will do so using features introduced in Elixir 1.6 such as the DynamicSupervisor and the Registry. There’s quite … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6

Data massaging in pipes with anonymous functions

This technique is obsolete since Elixir v.1.12, as it has introduced then/2 The pipe operator is great. So great, in fact, that sometimes you just want to keep that pipe juice flowing and feel bad about breaking it up just … Continue reading

Posted in Elixir, Pattern snippets | Comments Off on Data massaging in pipes with anonymous functions

Finer control in `with` failed matches

Elixir gives us the with construct to combine matching clauses, which is very handy as programs frequently to perform an operation only if/when a set of preconditions is met. Let’s say we want to charge a product to a credit card: … Continue reading

Posted in Elixir, Pattern snippets | Comments Off on Finer control in `with` failed matches

Pattern matching in function heads: don’t go overboard

Elixir’s pattern matching is great, but make sure it’s not reducing your code’s readability. In particular, just because you can match all the variables you’ll need from within the function’s head doesn’t mean you should. Take this code: def handle_call(:checkout, … Continue reading

Posted in Elixir, Pattern snippets | Comments Off on Pattern matching in function heads: don’t go overboard

Keyword list reduction

Keyword lists are often used to provide optional values, which are then processed (for example to initialize the state). One really nice way to do so, is with a reduce pattern. I’ve never seen anyone bringing attention to it in … Continue reading

Posted in Elixir, Pattern snippets | Comments Off on Keyword list reduction