Fedecks makes it easy to establish duplex communication between your Elixir Nerves devices and your Phoenix Server in the cloud| The log of Paul Wilson
Conference experience reports used to be a thing, back in the days of people doing lots of blogging. Why not be a bit retro, and put one together?| The log of Paul Wilson
The José Valim approved (tm) way of introducing mocks1 into Elixir is through injecting implementations of explicit contracts defined by behaviours. José and pals crystallised this approach with the popular Mox hexicle. There’s some awkward terminology around all this which is probably not important. I should really say test double but I’ve always found that an awkward phrase. See XUnit patters for definitions. It is common in Elixir Land (as other places) to use Mock for Test Doubles s...| The log of Paul Wilson
Today I learnt that it is forbidden to use an attribute which is a port or a (reference) in an ExUnit test. (Pids are just fine).| The log of Paul Wilson
I recently got back to a slow burn project to make a security system for my home-office, with Elixir Nerves. Being one of my projects, it was an Umbrella Project. The last time I posted it was to (relucanctly) leave Umbrellas behind, so I did think about flattening the project. Instead I realised that most of apps were generally reusable, at least by me1, so instead I have extracted them into their own hexicles. Don’t tell anybody but I have been known to entirely copy an Umbrella app from ...| The log of Paul Wilson
I started my first blog in about 2005, I think. That is now lost. Back in 2014 I started a new one which did not really stay active long because of all the tweeting; I’ve just merged that into here and redirected my main url, http://merecomplexities.com.| The log of Paul Wilson
Death, children, and OTP Summary Previously in this (what has become a) series of posts we have looked at how an OTP process behaves when we try and kill it and what happens to an OTP process when a linked process dies. In an Elixir Form thread a forum member, The Wild Goose, pointed out that there was special behaviour when a the exit signal is received from a processes parent. I was sceptical of this, finding no reference to parent / child relationship in the Erlang process documentation. I...| The log of Paul Wilson
What happens when a linked process dies Summary Previously we looked at different ways we can kill (or attempt to kill) a process and what happens in each case. Now let’s see what happens when a linked process dies. The tl;dr is in the table below. Trapping exits? Reason for linked process exit Exit message received? Exits? no :normal no no no any reason other than :normal no yes yes any reason including :normal yes no Note that the behaviour describes what happens when the exiting linked p...| The log of Paul Wilson
Last week I wrote a post on killing OTP processes, which was also a LiveBook page. The process for embedding LiveBook in a Jekyll blog was straightforward, if not entirely satisfactory. If you’re curious, or want to try it, here’s my current setup for this:| The log of Paul Wilson
I got into programming Elixir somewhere around 2013. (I’m not great with dates but I had a check of some projects on Github). Since I found out about them, every project I have initiated has been an Umbrella Project; for the past few years, though, I do seem to be the only person who likes Umbrellas1. Umbrella Projects, that is. I prefer a waterproof jacket to an actual umbrella, especially here in windy Scotland. ↩| The log of Paul Wilson