The curious case of nanosleep vs. hr_sleep
This weekend, I finally got around reading a bookmarked paper that proposes an improved nanosleep:
In the following I document a few notes.
The Papers¶
At page 4 I'm asking …
This weekend, I finally got around reading a bookmarked paper that proposes an improved nanosleep:
In the following I document a few notes.
At page 4 I'm asking …
This article describes an approach to blocking ads in audio files and introduces software that implements it.
The modern web is unbearable without a good ad-blocker such as uBlock Origin. Unfortunately, the online marketing industry, while destroying the web, providing creative distribution networks for malware and disinformation campaigns there …
This article introduces shift-tutor, a Linux program that filters shift key events to improve or verify touch typing skills.
Most keyboards contain two shift keys, i.e. one located on the left bottom and the other on the opposite side:
Source: Mliu92, ANSI US QWERTY (Windows, split + rotated), CC …
Recently, I was in the market for a Class-D amplifier to replace an aging model. This article reviews the very compact Fosi Audio TSA7498E 2 channel amplifier I bought from a China based business, via Amazon. tl;dr: Can't recommend, use something better.
I2C is a simple open-drain bus that is popular for connecting devices to microcontrollers (MCUs), such as sensors, RTCs, displays etc. Devices on the I2C bus are addressed by 7 bits and the bus data and clock lines are pulled-up by a set of pull-up resistors. A good first test …
This article describes how to measure a pulse-width-modulated (PWM) signal using the Pokit Meter device.
The Pokit Meter is a very small digital multimeter (DMM) like device that can be interfaced over Bluetooth Low Energy (BLE). Due to its design and small form factor it comes with many limitations, but …
The GD32VF103 is an inexpensive 32 bit RISC-V CPU that integrates a bunch of peripherals. In other words, it's a cheap RISC-V microcontroller (MCU). This article describes how to hook it up, to set up an development environment and do some first steps with its peripherals.
It's well known that syscalls are expensive. And that software mitigations against CPU bugs (such as Meltdown) even have made them more expensive. But how expensive are they really? To begin to answer this question I wrote a small micro-benchmark in order to measure the minimal costs of a syscall …
More and more open source projects seem to switch to the Meson build tool, in the last years. In an attempt to quantify this development I looked at the build tools usage by Fedora packages, during the last 14 years.
Meson is a build tool with good C …
The beauty of perfect hashing is that you never have to deal with any collisions during item lookup. I recently created libphashtable, a perfect hashing hash table library for C/C++ which focuses on minimizing item lookup latency jitter. This article presents benchmarking results that show how its lookup times …