For educational reasons I've decided to create my own CA. Here is what I learned.
Lets get some context first.
defmodule MacroExp do | |
defmacro attr_accessor(atom) do | |
getter = String.to_atom("get_#{atom}") | |
setter = String.to_atom("set_#{atom}") | |
quote do | |
def unquote(getter)(data) do | |
data |> Map.from_struct |> Map.get(unquote(atom)) | |
end | |
def unquote(setter)(data, value) do | |
data |> Map.put(unquote(atom), value) |
Guide to setting up a new Ubuntu 18.04 dev environment with Ruby and Elixir installed with the asdf version management tool.
Some of these packages may already be installed
sudo apt-get install make binutils gcc build-essential \
git curl zlib1g-dev openssl libssl-dev libreadline-dev \