Author Archives: David Sulc

Configuring automatic USB backups with an encrypted $HOME

Backups are important, yet I’m lazy and forgetful. To remedy this, I wanted the USB backups I do periodically to be as easy as possible: when I plug in a drive with a `backup` partition, the backup script replication should … Continue reading

Posted in System administration | Comments Off on Configuring automatic USB backups with an encrypted $HOME

Recovering an encrypted home partition on Ubuntu

I recently found myself needing to restore data from a backup of an ecryptfs-encrypted Ubuntu home partition. This didn’t go as smoothly as when testing backup restoration (in part because ecryptfs has since fallen out of favor, replaced by LUKS), … Continue reading

Posted in System administration | Comments Off on Recovering an encrypted home partition on Ubuntu

OTP 21 introduces handle_continue callback to GenServer

When using GenServers, it is sometimes necessary to perform long-running code during the initialization. The common pattern for handling this is to send a message to self() from within the init callback, and then perform the long-running work within the handle_info function for … Continue reading

Posted in Elixir | Comments Off on OTP 21 introduces handle_continue callback to GenServer

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

Starting pools (This post is part of a series on writing a process pool manager in Elixir.) Previously, we got pretty excited about the possibility of starting multiple pools, only to have our dreams crushed by bleak reality. Here’s a … Continue reading

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

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

Implementing multiple pools (This post is part of a series on writing a process pool manager in Elixir.) In the last post, we did  most of the work enabling us to have multiple pools within PoolToy. But before we jump … Continue reading

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

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

Preparing for multiple pools (This post is part of a series on writing a process pool manager in Elixir.) When we left each other after last post, we had a working single pool that looked something like this: The thing … Continue reading

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

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

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) Figuring out the shenanigans Let’s get on the same page (after last post) as to what is happening when we … Continue reading

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

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

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) First, let’s point out the problem in our current pool design as we left after last post: our pool manager’s … Continue reading

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

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

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) We’ve now realized (in last post) that storing the references to the client monitors in a map was a bit … Continue reading

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

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

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) So we’ve got a working pool we can check worker processes in/out of (previous post). However, we’re not handling dying … Continue reading

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