The Missing Bit


Creating an elixir nif in zig

Zig is a language that has excellent interoperability with C, and for this reason, I use it a lot to interact with C libraries. I also use elixir as a daily driver for server applications.

In this post, I'll detail the step to be able to call zig code from elixir.

Read more

CRC 32 on STM32l0

The goal is to do the same as zig's std.hash.crc.Crc32.hash(&buf) on STM32 hardware.

Read more

Testing Zig for embedded development

I have been using rust as embedded language for cortex M MCU for a while.

While I like rust, embedded dev in rust has some friction, and a few things are a bit hard to do. Especially C interop and direct memory manipulation.

I decided to give zig a try, and while it is still in very early stage compared to rust, I was able to get a working hello world program quite quickly. And I was able to get RTT working with the SEGGER C library.

In this post, I'll share what I learned and a few gotchas.

TLDR: The repo is here:

Read more

Configuring a Mail server on OpenBSD

As certainly many of us do, I use email a lot.

Currently I am using fastmail, it works quite well, but I have a few issues:

  • Spam filter is hard to tune to my exact needs
  • IMAP is slow from my location

In this post, I'll share how I configured my own IMAP server.

This is part one of two, which focus on IMAP.

Read more

Configuring esbuild with phoenix and tailwind

This is a quick setup for phoenix 1.6, live view and tailwind for CSS.

Read more