Let’s try to reboot this page once again, as usual every other year.
BEAM me up, Scotty! @ FOSDEM 2024
I delivered an introductory talk on the superpowers of the BEAM at the “Erlang, Elixir, Gleam and Friends” devroom during FOSDEM 2024.
The purpose of the talk was to introduce the BEAM/OTP ecosystem to the audience, in order to warm them up for the more advanced talks that followed. You can find the the recording here, along with the slide deck I used.
It was a joy seeing a packed room interested in what still seems to be a niche set of technlogies - despite being years ahead in the concurrent/distributed systems field and having been an inspiration to many mainstream frameworks, tools and languages.
Finally, a huge thank you to all the devroom speakers, see you next year!
Building an interpreter for a simple language @ UniBo
I was invited to give a three-hour talk/demo for the bachelor Programming Languages course at UniBo, showcasing how to build an interpreter for a small language.
The Demo
language is a concurrent extension to the classic WHILE language, adding procedures and concurrent execution go-style.
I used Java as host language and ANTLR 4 as a parser generator.
The most interesting part in my view is however describing how to implement the language semantics starting from a formal one in the structural operational style (big step variant).
Slides describing the construction process, the semantics and some interesting details (nontermination modelled as an infinite proof) will be made available.
The code can be found here.
Erlang, Elixir, Gleam and Friends devroom @ FOSDEM 2024
We’re excited to announce that the Erlang, Elixir, Gleam and Friends Devroom is back for FOSDEM 2024!
FOSDEM is one of the largest conferences in the world and fully dedicated to open-source software. It that wasn’t enought, it’s also free!
You can find the Call for Talks here. Me and Davide Bettio are the devroom managers, with many more helping us, especially Riccardo Binetti!
Whether you’re submitting your talk proposal, or you’re just attending the event, we hope to see you in Brussels in February on the 3rd of February, 2024!
Fighting the Behemoth
He is the first of God’s works […] He can restrain the river from its rushing; He is confident the stream will gush at his command. Can he be taken by his eyes? Can his nose be pierced by hooks?
Job, 40:15.23-24
Last week I did a lighting talk at Code BEAM EU in Berlin! The focus of the talk was the current refactoring process of an outrageous piece of code in the Astarte codebase, the ill-famed impl.ex.
Largely written somewhere between 5 and 6 years ago, when most of the Astarte team was learning Elixir (the first of Astarte’s works), it is a perfect example of how to write code that works, runs fast, can be relied upon (confident the stream will gush at his command) but is also absolutely unreadable and dreadful to maintain. Being the maintainer, I had to do something!
I will make the slides available in the next days, for the moment the brief summary of this WIP refactoring is:
- Divide the functional, (mostly) pure core from the imperative shell: keep domain complexity separate (and typed, and tested) from the machinery complexity
- As in everything, big and disomogeneous state is a mess: keep it as little as feasible, possibly also by splitting it in its different subcomponents
- Elixir’s
with
work better if there is noelse
, keeping the code monadic - Tests of the functional core should be readable, repeatable and randomized