PC Member Bryan Hunt picks his personal talk highlights for Code BEAM STO 2018

Bryan Hunt 14.05.2018

Bryan hunt is on the Programme Committee for Code BEAM STO and has been involved with the open source community in various ways for the last 20 years. He is now leading Erlang Solutions' Riak support whilst being an advocate for Elixir and Erlang.

In this article, Bryan gives his own personal list of talks he plans on attending at Code BEAM STO this year.

Bryan’s day 1 choices:

Michal Muskala - Optimizing for the BEAM
                                
The BEAM is a wonderful piece of technology, we all love it and we use it daily when writing our programs. Michal is a prolific BEAM developer and Elixir committer. In this talk, he will explore some common techniques for optimising programs running on the BEAM, applicable to Erlang, Elixir and LFE. He’ll show us what tools we can use for evaluating performance and discovering bottlenecks and how the BEAM can then be used to optimize our programs. Michal will be drawing on his experiences optimising open source libraries, building performance-focused applications and contributing to the optimisation of the Erlang compiler and the BEAM runtime.
            
Csaba Hoch - The quest for the best IDE
                        
Erlang can learn a lot from Elixir tooling. Any light shone on what’s idiomatic for Erlang developers is a good thing.

Csaba Hoch will be exploring the world of IDEs from the perspective of an Erlang developer. He will be discussing quite a few IDEs that provide a certain amount of support for Erlang programming. These will include text editors such as Vim and Emacs, and proper IDEs such as Eclipse, IntelliJ IDEA and Visual Studio Code. What are the features that we can expect from an IDE? How different are the feature sets provided by different IDEs? How easy is it to extend these IDEs with custom features? What can the Erlang plugins of the IDEs learn from each other?
    
Peter Saxton - Raxx; refined web development

Peter is a great speaker, a prolific open-source developer and prominent in the London Elixir community. Raxx/Ace are well worth evaluating for anyone developing Elixir web services or websocket servers. Raxx can be used to build web applications much like Plug. However that is where the similarities end. Raxx aims to simplify web applications by promoting simple concepts like functional purity and message passing. Peter started the project in 2016. Since then, it has matured to the point where it has been used in several production services.

Joseph Yiasemides - Expressive power
    
Documentation, pattern matching, and OTP are big things in Elixir. However, what about the humble _module_? Joseph will talk about how to exploit arguably simpler constructs, like the _module_, to their fullest extent in everyday alchemy. Joseph is a very experienced developer. His insight into Elixir tips and tricks is valuable to the community.
                            
Kofi Gumbs - Getting to BEAM, without going through Erlang

Any talk where the speaker has written a compiler is going to be worth watching. In this talk Kofi Gumbs will discuss Compiler design and a working prototype of an alternate Erlang compiler written in Haskell. Kofi will discuss the making of a compile-to-BEAM language, he will give a guided tour through codec-beam, a BEAM assembler written in Haskell, which provides an explicit model for the BEAM's semantics. He’ll finally compare this project to Erlang’s own compiler assembler, and see if OTP can be beaten at it's own game.
    
Bryan’s day 2 choices:

Russell Brown - Riak from the ashes

Last year, Riak was made open sourced. A year later, the first fully open-source, community driven version of Riak: Riak-2.2.5, has been released. What’s it like to bring a project that once employed 60 people back to life with a handful of volunteers? This talk is about the start of something good from the end of something bad, and how has the community kept Riak running even though Basho crashed.

Benoit Chesneau - Using Barrel to build your own P2P data platform

BarrelDB is a masterless, replicated data store, somewhat similar to Couchdb. It can be embedded in an Erlang or Elixir application like Mnesia. With Barrel, you can easily bring and keep a view (complete or partial) of your data inside your application and replicate it between your different machines.  Benoit has been working on this for the past two years and in this talk he will explain how to use Barrel to quickly create your own peer-to-peer data platform with different storage and replication strategies. He will also show the different tools supported by Barrel, to operate and monitor your cluster on premise or on the "cloud."

Martin Sumner - Riak 3.0 and Efficient Anti-Entropy - Bringing certainty to eventually

Martin has written a new AAE implementation for Riak. The existing implementation is very convoluted and troublesome. Martin’s novel design will make it much easier to synchronise Riak data with non-Riak datastores such as Hadoop, Solr, even a relational database.

Work is underway on Riak KV 3.0, the first major release of Riak KV since the project went fully open-source. Riak KV 3.0 will improve the efficiency of how the entropy problem is addressed. The improvements are focused on re-designing Riak’s use of Merkle Trees, a data structure recently popularised though its use in Blockchain systems. The redesign changes how Merkle Trees are stored and calculated, and includes a mechanism for aligning the querying of data in Log-Structured Merge Trees with the Merkle Trees that represent the data.

Vlad Dumitrescu - Developer tools using the Language Server Protocol

Why is it that the tooling experience when working on Erlang code is so rudimentary compared to Elixir, particularly when using Visual Studio Code? Simples! Erlang doesn’t have a language server for providing code linting, documentation, code completion etc? Not any more, Vlad Dumitrescu is working on the open-source sourcer project which promises to fix this and more!

One of the problems that development tools had was that each editor and IDE had its own implementation of functionality that could have been common: parsing the code, understanding project structure, etc. Microsoft has specified an open protocol that allows separating language-specific backends from generic editing clients. Vlad Dumitrescu will describe an implementation for a LSP server for Erlang (sourcer) and show how it can be used for more than editor support.

View all talk line-up for Code BEAM STO 2018 here.

Bryan Hunt
Author

Bryan Hunt

Open source contributor, solutions architect at Erlang solutions