~/talk

"config.exs is Simple" and Other Lies

Talkat ElixirConf EU 2022 · 2022-06-09..06-10· [developer-experience]
slides:none on file

Claim: Elixir configuration is code not data, so config.exs runs as Elixir code and can have side effects, ordering issues and unreliability between compile time and runtime. Examples: Mix loads config files specially, Erlang logger is configured earlier so changes may not apply, Oban treats a nil plugin list differently than [] leading to surprising merges (Oban list vs nil merge), and adding a MIME at compile time forced CI to recompile. Recommendation: prefer runtime init callbacks, sane defaults in mix.exs, and avoid compile-time config.

AI-written summary · about

  1. 0:00Introduction
  2. 1:05Simple vs easy in software
  3. 2:13Complexity of user manuals
  4. 5:46Real users of your app
  5. 7:37Excessive config options
  6. 9:06Elixir config locations
  7. 11:01Why config.ex feels simple
  8. 12:31Dangers of imperative config
  9. 15:03Config loading timing issues
  10. 17:14Security risks in exec config
  11. 18:19Runtime vs compile-time traps
  12. 19:52Config loading pitfalls
  13. 21:13No perfect config solution
  14. 22:25Avoid config when possible
  15. 24:35Sensible defaults & safety
  16. 26:00Mix.exs as config tool
  17. 27:23Complexity of Mix.exs
  18. 28:50Elixir ease vs complexity
  19. 30:38Config complexity gotchas
  20. 30:58Q&A: Umbrella project configs
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.