Categories
Archives
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)