Embed git commit hash into an executable

The problem When we write our programs or libraries, usually we ship to the end user a packaged binary. If a user wants to report a bug or ask for a feature, one of the most important information to have is “which version of the software are you using ?” Since as any good programmer you likely use a source code control system, you should not rely only on the numeric version, but it’s practical to include also the git commit hash of the software you are actually shipping. ...

July 1, 2023 · Andrea Manzini

Old-School demo effects with Crystal

Nostalgia time! Today I decided to play with Raylib and the Crystal Programming Language. Technically speaking, the “plasma” effect is just a two variables noise function. Some used Perlin Noise, others the Diamond-square algorithm. A more interesting pattern can be obtained with trigonometrical functions, as explained here. The interesting part here is the easyness of graphics programming in a Linux environment with a high level, yet performant and statically typed programming language. The code is straightforward and a simple port of the original ‘C’ source, I got surprised how the Crystal Language is easy to use and produces a quite fast native binary. If you want to check it out, you can find on my github account; in the meantime enjoy the mandatory video/screenshot :) ...

May 18, 2023 · Andrea Manzini

Benchmarking a Rust function

Once in a while I like to play with Advent Of Code problems 🎄. Today I decided to tackle an easy one and, since the answer was almost trivial to find, I wanted to go deeper and understand how to measure and improve the performance of the solution. ...

April 2, 2023 · Andrea Manzini

Debugging a problematic build

The Good 😇 Today I decided to submit an openSUSE package update for the nim compiler. It went almost all well but unfortunately I faced a problem: on the i586 platform it fails to build. ...

March 14, 2023 · Andrea Manzini