[C++] What's new in clang-format 5

Clang 5 was released last week. It's a good opportunity to talk about a not-enough-known tool: Clang-format. Clang-format is part of the Clang project but can be used without the Clang compiler. It's an independent executable. Clang-format is a code linter for C++. It takes a non-formatted code as input…

READ MORE

[C++] Lightweight float to string conversion

This article presents a simple algorithm for converting floats to string. It's designed to have a small code and limited RAM usage, making it a perfect fit for embedded systems. As a matter of fact, it's part of ArduinoJson 5.10. It features: Small code size Small memory usage No…

READ MORE

[C++] How to GetProcAddress() like a boss

When programming on Windows, you usually use the functions from another DLL through an import .lib that links the functions used in your program with the functions exported by a DLL. Manual DLL loading However, there are a few situations where you cannot use this scheme: You may simply not…

READ MORE

[DIY] Fix a Riviera & Bar Kettle

I own a Riviera&Bar Kettle model QD 658 A. It's been working for years, but recently it started to go crazy. It would start heating to 100°C by itself as if a ghost pressed the button. This article explains how to fix this. Explanations: The problem is…

READ MORE

[Synology] Auto connect VPN at startup

The built-in VPN client of Synology DSM 6 is excellent, but it lacks one key feature: being able to connect the VPN automatically after a reboot. Prerequisite: 1. You need to have SSH enabled on the Synology 2. You need basic knowledge of Unix (sudo, cat, vi, chmod, ln -s)…

READ MORE

[Linux] daemon() considered harmful

I'm currently writing a Linux program that is supposed to run in the background. When it was time to implement the --daemonize, I look at the current options and I was quite surprised to learn that daemon() or fork() are not the best way to write a daemon nowadays. Indeed,…

READ MORE

Embrace abstractions!

Abstraction is probably the most powerful concept in programming. Nevertheless, from time to time, I hear (or read) people questioning the value of abstractions. Here is my answer. We are surrounded by abstractions An abstraction is a simplified model (a mental model, if you will) that is used in place…

READ MORE

[C++] Embarcadero C++ Builder is a joke

Last week I discovered that Embarcadero offers a free version of C++ Builder Starter, apparently for a limited period. So I took this opportunity to install the IDE and try to compile ArduinoJson. It turned out to be a very disappointing (nearly infuriating) experience. BTW, if you try to get…

READ MORE