Go to page:
2021 › March
-
When I bought a Nuki Opener, I had a lot of trouble getting it to work — it turns out the device doesn’t properly decode the SCS bus at all, and only captures and replays the signals with a generic code path. Read more →
-
This post is the third article in a series of blog posts about the Nuki Opener on the SCS bus intercom, see the Series Overview. I bought the cheapest compatible BTicino intercom device (BT 344232 for 32 €) that I could find on eBay, then soldered in 4 wires and added microcontrollers to make it smart. Read more →
-
Debian Code Search now offers an OpenAPI-based API! Various developers have created ad-hoc client libraries based on how the web interface works. The goal of offering an OpenAPI-based API is to provide developers with automatically generated client libraries for a large number of programming languages, that target a stable interface independent of the web interface’s implementation details. Read more →
2021 › January
-
While I had heard the abbreviation MQTT many times, I never had a closer look at what MQTT is. Here are a few quick notes about using MQTT as Pub/Sub bus in a home IOT network. Motivation Once you have a few IOT devices, an obvious question is how to network them. Read more →
2020 › November
-
This post is the second article in a series of blog posts about the Nuki Opener on the SCS bus intercom, see the Series Overview. I recently bought a Nuki Opener, which “turns your existing intercom into a smart door opener”. Read more →
2020 › September
-
This post is the first article in a series of blog posts about the Nuki Opener on the SCS bus intercom, see the Series Overview. I have long been looking for a way to make my intercom a little more pleasant. Read more →
2020 › August
-
Motivation Despite using a FTTH internet connection since 2014, aside from the one fiber uplink, I had always used network gear with 1 Gbit/s links over regular old rj45 cat5(e) cables. I liked the simplicity and uniformity of that setup, but decided it’s time to add at least one fiber connection, to get rid of a temporary ethernet cable that connected my kitchen with the rest of my network that is largely in the living room and office. Read more →
2020 › July
-
Back in 2013, I published a replacement controller for the Kinesis Advantage ergonomic keyboard. In the community, it is often referred to simply as the “stapelberg”, and became quite popular. Many people like to use the feature-rich QMK firmware, which supports my replacement controller out of the box. Read more →
2020 › June
-
For my programming stream at twitch.tv/stapelberg, I wanted to add an additional camera to show test devices, electronics projects, etc. I couldn’t find my old webcam, and new ones are hard to come by currently, so I figured I would try to include a phone camera somehow. Read more →
2020 › May
-
I generally enjoy reading the uses this blog, and recently people have been talking about desk setups in my bubble (and on my Twitch stream), so I figured I’d write a post about my current setup! Desk setup I’m using a desk I bought at IKEA well over 10 years ago. Read more →
-
I just released a new version of distri. The focus of this release lies on: a better developer experience, allowing users to debug any installed package without extra setup steps performance improvements in all areas (starting programs, building distri packages, generating distri images) Read more →
-
In distri, packages (e.g. emacs) are hermetic. By hermetic, I mean that the dependencies a package uses (e.g. libusb) don’t change, even when newer versions are installed. For example, if package libusb-amd64-1.0.22-7 is available at build time, the package will always use that same version, even after the newer libusb-amd64-1. Read more →
2020 › February
-
When spawning a child program, for example in an integration test, it is often helpful to know when the child program is ready to receive requests. Delaying A brittle strategy is to just add a delay (say, time.Sleep(2 * time.Second)) and hope the child program finishes initialization in that time. Read more →
2020 › January
-
In case you are not yet familiar with why an initramfs (or initrd, or initial ramdisk) is typically used when starting Linux, let me quote the wikipedia definition: “[…] initrd is a scheme for loading a temporary root file system into memory, which may be used as part of the Linux startup process […] to make preparations before the real root file system can be mounted. Read more →
2019 › October
-
One of my two NAS builds recently died, so I bought a new one until I find some time to debug the old one. Since a couple of people have been asking me what I would recommend nowadays based on my November 2016 article “Gigabit NAS (running CoreOS)”, I figured I would share the new hardware listing: Read more →
2019 › September
-
Over the last few months, I have been developing a new index format for Debian Code Search. This required a lot of careful refactoring, re-implementation, debug tool creation and debugging. Read more →
2019 › August
-
Over the last year or so I have worked on a research linux distribution in my spare time. It’s not a distribution for researchers (like Scientific Linux), but my personal playground project to research linux distribution development, i.e. try out fresh ideas. Read more →
-
I measured how long the most popular Linux distribution’s package manager take to install small and large packages. Read more →
2019 › July
-
Hooks are an extension feature provided by all package managers that are used in larger Linux distributions. For example, Debian uses apt, which has various maintainer scripts. Fedora uses rpm, which has scriptlets. Different package managers use different names for the concept, but all of them offer package maintainers the ability to run arbitrary code during package installation and upgrades. Read more →
2019 › May
-
In the i3 projects, we have always tried hard to avoid optional dependencies. There are a number of reasons behind it, and as I have recently encountered some of the downsides of optional dependencies firsthand, I summarized my thoughts in this article. Read more →
2019 › March
-
This post is hard to write, both in the emotional sense but also in the “I would have written a shorter letter, but I didn’t have the time” sense. Hence, please assume the best of intentions when reading it—it is not my intention to make anyone feel bad about their contributions, but rather to provide some insight into why my frustration level ultimately exceeded the threshold. Read more →
2019 › February
-
Recently, a user reported that they don’t see window titles in i3 when running i3 on a Raspberry Pi with Debian. I copied the latest Raspberry Pi Debian image onto an SD card, booted it, and was able to reproduce the issue. Read more →
-
Motivation I have recently been looking into speeding up Debian Code Search. As a quick reminder, search engines answer queries by consulting an inverted index: a map from term to documents containing that term (called a “posting list”). See the Debian Code Search Bachelor Thesis (PDF) for a lot more details. Read more →
2018 › December
-
My use-case is seemingly very simple: I want to run a webserver in a Docker container, and it should be reachable via IPv4 and IPv6. The webserver has multiple virtual hosts, some of which just serve static files, while others proxy to, say, a Grafana instance, which is also running in a Docker container. Read more →
2018 › October
-
Our computer association NoName e.V. organizes a retro computing event called RGB2R every year, located in Heidelberg, Germany. This year’s version is called RGB2Rv18. This article describes the network setup I created for this year’s event. If you haven’t read it, the article about last year’s RGB2Rv17 network is also available. Read more →
2018 › June
-
This is taken care of: Gunnar Wolf has taken on maintenance of the Raspberry Pi image. Thank you! (Cross-posting this message I sent to pkg-raspi-maintainers for broader visibility.) I started building Raspberry Pi images because I thought there should be an easy, official way to install Debian on the Raspberry Pi. Read more →
2018 › May
-
Update (2021) Update (2021): After Dell didn’t update their Linux version for a while, I concluded it would be best to just install a standard Ubuntu Linux. All required drivers are upstreamed, and I never needed the Dell tools that come with their version. Read more →
2018 › April
-
This post is part of a series of posts about the kinX project. Latency measurement End-to-end latency consists of 3 parts: input latency (keyboard) processing latency (computer) output latency (monitor) During the development of the kinX keyboard controller, I realized that measuring processing latency was quite simple with my hardware: I could start a timer when sending a key press HID report to the computer and measure the elapsed time when I would receive a reply from the computer. Read more →
-
This post is part of a series of posts about the kinX project. Motivation The Kinesis Advantage comes with a built-in 2-port USB hub. That hub uses a proprietary connector to interface with a PS/2 keyboard controller, so it cannot be used with a USB keyboard controller. Read more →
I run a blog since 2005, spreading knowledge and experience for almost 20 years! :)
If you want to support my work, you can buy me a coffee.
Thank you for your support! ❤️