Our publications

Today we are going to talk about logs, quantitative metrics, and how to observe them in order to increase the team reaction rate and reduce the system waiting time in case of an incident. Erlang/OTP as a framework and ideology of developing distributed systems provides us with regulated approaches to development, proper tools, and implementation of standard components. Let’s assume that we have exploited OTP’s potential and have gone all the way from prototype to production. Our Erlang project feels perfectly fine on production servers. The code base is constantly developing, new requirements are emerging alongside with functionality, new people are joining the team. Everything is, like…fine? However, from time to time something might go wrong and any technical issues combined with human factor lead to crash. As you just can’t have all the bases covered and foresee all the potential dangers of failures and problems, then you have to reduce the system waiting time via proper management and software solutions.

Erlang/OTP
Elixir
Software development

Even school students know that there are different number systems. As well, they are aware of the fact that not every finite decimal fraction equals to its finite binary representation. However, not many of us realize that due to this fact all operations with floats and doubles are never precise enough. Let’s take Erlang, for instance. As many other languages, it implements IEEE754 standard for floats while standard Integer is implemented via arbitrary-precision arithmetic. However, it would be great to have not just bigint, but also an opportunity to handle rational and complex numbers and floats with precision required. This article provides an overview of number coding theory of floats, and the most vivid examples of possible results. It also presents the solution which ensures the necessary precision of operations through a fixed-point implementation. This solution is framed as a library EAPA (Erlang Arbitrary Precision Arithmetic) whose main aim is to meet the needs of Erlang/Elixir financial apps.

Erlang/OTP
Rust
Elixir
Software development

The internet is full of information and disputes over approaches to sql/nosql choice as well as benefits and drawbacks of this or that KV-storage. What you are reading right now is neither a rocksdb guide nor an attempt to rope you in using this very storage and my driver for it. I just want to share some preliminary results of the work done on streamlining NIF for Erlang development process. In this article you’ll have a look at a working driver for rocksdb developed in a couple of evenings.

Erlang/OTP
Rust
RocksDb
Docker

The article deals with Erlang and Rust integration with reference to Burton Bloom’s probabilistic data structure implementation. The later is used to test with the precision required whether an element belongs to a set.

Erlang
Rust
NIF

Many books on carpentry or woodwork welcome you into reading with a chapter about proper workplace organisation and tools arrangement. I do believe that development skills should also be viewed as art and culture. A feasible approach to working environment really helps reduce development costs and further refinement. This happens due to early problem detection and developer’s increased productivity. As the topic is really vast, I’m planning on writing a series of articles.

Erlang/OTP
Docker
Docker Compose
Programming

Contacts

m.molchanov@vonmo.com
Developed with love in Rostov-on-Don