Updated demo code from Saša Jurić's "The Soul of Erlang and Elixir" video, for Elixir 1.12 and Phoenix 1.6

Hey all,

This is the original repo: GitHub - sasa1977/demo_system

And this is my fork which has updated code to run under most up-to-date Erlang/Elixir/Phoenix. The original git repo has .tool-versions, so you can use asdf to install the correct version. Disclaimer is I don’t have asdf in my machine, so I just updated that file to the versions I have running.

And yes Phoenix 1.6 - esbuild and everything.

The video: The Soul of Erlang and Elixir • Saša Jurić • GOTO 2019 - YouTube

Now you can follow along with the video using the latest versions!

Why I did this, besides making the video be more interactive:

I dunno about you but at work our team is the only team using Elixir, so we’re kinda on thin ice. We are a small team who’s trying to make a case that Elixir will help the entire engineering team… I mean it’s either this or rewrite into Ruby (to match all other web app code), so I think/hope the case is not that hard to make.

Anyhow I always think and try to get a couple more steps ahead of a potential show-down of compare-and-contrast that leadership might ask. My go-to ammo was always the book “Adapting Elixir”, and the video: “The Soul of Erlang and Elixir • Saša Jurić • GOTO 2019”.

The video itself is AMAZING. I watched it I think about 7,8 times now.

Yes by itself will get the viewer to gain insights on the BEAM, and why Elixir will allow access to it.

However you know what’s better than just telling people to watch it?

A demo of it, ACTUALLY being run, while during a Lunch-and-Learn meeting or an engineering demo running a variant of it with business-focused use case. Yes. YOU actually doing the demo and explaining the power of BEAM.

So, that’s why I updated the codebase. To pick and choose some of the key components of Saša Jurić 's talk, ready for anytime I need to explain benefits of Elixir/BEAM.

To help guide myself I’ve generated some outline of his talk into a sort of a presentation outline so I can be able to give it on a heart’s notice, in a Google Doc.

Oh and by the way, how he did the graphs? Pure genius. He drew it using SVG! So LiveView updates the DOM, and SVG draws the graph, data populated by assigns… it’s so lean. No D3.js or whatever, just harnessing the power of HTML5 to the max. Super lean.

And the way he used the processes to monitor, tally up stats, and bringing it into LiveView was quite a learning experience. I mean I’m not super experienced in “process flow design” so this was a really an eye opening experience. (Yes I know this was a demo so code might not be super clean). Even then, wow.