Basti’s Buggy Blog

Poking at software.

  • The Curious Case of the Impossible Checksum

    Naturally, as a software developer being confronted with less-than-optimal software, the threshold for annoyance-caused re-implementation of proprietary apps is quite low. In this particular instance I wanted to use my phone to control the resistance of my stationary exercise bike (Kettler Racer S). Proprietary Android apps can be used to automatically regulate the resistance of the trainer via Bluetooth according to an exercise plan you pick. To quote GitHub user “kaegi”, the usability of aforementioned apps ranges from “bad-user experience” to “non-functional”. I decided to take matters into my own hands and implemented the Bluetooth protocol for controlling the trainer, causing me to uncover a surprisingly stupid implementation bug in the firmware.

  • Why Your Samba Configuration Does Not Work

    Bending the Samba/smbd configuration to enable file sharing between Linux-Linux or Linux-Windows desktop has always been a personal pain point of mine. Unsurprisingly few other topics on Linux desktop are being discussed so frequently among Linux desktop enthusiasts. Most users end up with a patchwork of smbd configuration options, leaving them with a dysfunctional and insecure system. This post intends to provide an overview of a basic smbd configuration that is compatible with Windows 10 systems.

  • urxvt and Emacs - The Ultimate Guide

    One of the major advantages of Emacs is that in addition to working on graphical interfaces, it can be used from a terminal as well. However, some features (such as many keybindings) are not available when using Emacs in terminals, due to ancient protocol limitations. This post shows how to make the most of Emacs on a terminal (urxvt).

  • Don't Trust Java's Method Overloads

    Whatever your opinion on inheritance vs composition is, I am confident you agree that unexpected behavior not desirable and the Principle of least astonishment should not be violated. The otherwise very verbose and honest programming language Java however managed to fool me with an innocent looking method overload.

  • When to Use C++17 std::string_view?

    C++17 brings many new fancy things, many of which significantly improve the readability and expressiveness of code (if constexpr, std::optional). However, there are features like std::string_view, which can be footguns in disguise. This article gives a short overview over the possible (mis-)uses of this “new” class.

Older Posts