Newsletter 50 – 05/2024

Featured

Deep Diving Into the Erlang Scheduler – The Erlang Scheduler is magical, and this short text is capable of giving a general explanation of how it works, what lightweight threads, reductions, and many other concepts.

Prism in 2024 – Parsers is usually a legacy code on most languages, especially ones with more than 20 years old like Ruby. Changing the parser (usually auto-generated by technologies like Yacc/Bison) is a hard task, and this challenge is even harder if we talk about building a standard parser for the community. Prism is all of this, is the new standard Ruby parser developed in the last two years, and already integrated into the majority of Ruby runtimes, including CRuby and JRuby.

Open Sourcing DOS 4 – Microsoft has open sources DOS 4 source code, this code is part of operating system history, and a nice piece of assembly code.

Notes on how to use LLMs in your product. – Many companies are trying to use LLMs to solve their problems but some aspects of LLMs development are not clear to everybody, these notes can help understand the challenges behind integrating LLMs into products.

Simple Ways to Show Appreciation at Work – Showing appreciation for your peers is essential in any relationship with peers. This post is useful for managers and individual contributors.

MISC

Go Is An Object Oriented Programming Language – The discussion about Go being object-oriented or not is endless and you can find many different opinions around the web. This post is no exception and it brings its opinion about it.

Autotuner: How to Speed Up Your Rails App – Tune garbage collection parameters is a hard task in any language, this post describes how Shopify solved the problem it Ruby. The gem Autotuner released by them is capable of collecting system runtime metrics and proposing GC options changes to increase the performance of the application.

If Inheritance is so bad, why does everyone use it? – A reflection on inheritance and where such a key concept of object-oriented languages comes from, and what was its original purpose.

The UX of UUIDs – UUIDs are on every developer’s day job, and this post brings some “UX” improvements to the way that we handle UUIDs.

Go performance from version 1.0 to 1.22 – Nice study about how Golang’s performance changed over the last major versions of it.

The loser tree data structure: How to optimize merges and make your programs run faster – The loser tree data structure is a data structure that I never heard about but its use cases look interesting like this one from Prometheus that used it for increase performance.