Ayke van Laëthem

Code size optimization for microcontrollers

How to optimize code size for microcontrollers, including compiler options and lots of coding habits that produce smaller and often more efficient code.

Internals of the MBR in Nordic SoftDevices

Nordic BLE chips contain a proprietary SoftDevice implementing the BLE stack. In this post, I will explain how the MBR region works and how to write your own.

Using PvGrub2 on Debian

Using pvgrub2 on Debian is very easy, and there is a little bit of documentation on the 'net, but not enough to cover all needs. I had to do some workarounds to enable pvgrub2 with btrfs.

Enforced STARTTLS for SMTP

While STARTTLS has traditionally been very sensitive to downgrade attacks, there are now two protocols to fix this: DANE and MTA-STS. I will take a look at how they work and how they can be implemented on your own domain.

Understanding modern mail authentication systems: SPF, DKIM and DMARC

Explains how modern email authentication systems work together to protect the "from" header in email. This makes phishing detectable and spamming more difficult.

Uploading README.rst to PyPI

My experience with making a Python package and uploading it to PyPI. Sometimes, such systems aren't as sophisticated as one might expect.

Managing phone addiction

A few tips on how to track how much you're addicted to your phone and how you can manage it. I give a short overview of how habits work. Then I describe how you can track how much you use your phone and give a few tips on breaking a few of those habits.

Using Arduino on the "blue pill" STM32F103 boards

As I gave up on Rust (for now), I tried setting up the Arduino environment to work with the "blue pill" board. It turns out to be quite easy, although there were a few small issues with the setup. You'll still need a (cheap) SWD programmer, though.

Intro to Rust on the STM32

How to write a simple Rust program for the STM32 "blue pill" board that's sold on AliExpress and Ebay for about $2. It turns out to be not too difficult.

Using AddressSanitizer and Valgrind on Android recovery

How to use memory checking tools inside an Android recovery to detect things like buffer overflows. A recovery system like TWRP is quite different from a normal Android image, so the official guides apply only partially and it needs some manual work to make these tools work. Here's how I did it.