Chris' Writing
Cat classification with Frigate
My Frigate surveillance setup’s primary purpose is to keep an eye on my cats while I’m away.
An older setup supported only motion detection, but reviewing all motion events of the day while on vacation to make sure that each cat is doing fine was somewhat cumbersome. I switched to Frigate to leverage its entity detection capabilities so I only have to review events that detected cats, and could skip random motion.
Making of paracelsusgood.at
The swimming situation in Salzburg isn’t exactly great. 150k residents share two (!) indoor pool places (one of them often being closed for extended periods of time due to shoddy construction), and there are only two additional outdoor pool places operating during summer months.
For people who like swimming lanes, as I do, there is a grand total of about 16 swim lanes available during summer, and only 10 during winter (if one of the places isn’t closed yet again because the contractor used rust-susceptible screws… for a pool).
A mysterious drop in Ethernet speed
At some random point in the past few weeks, Ethernet speed on my couch dropped from just under 1 Gbit/s to less than 100 Mbit/s. Besides feeling like I was back in the early 00s, this frustratingly ruined my low latency streaming performance.
The (ongoing) quest for 1 second Linux boot to desktop
Micro VMs are becoming more popular as a more secure alternative to containers, but VMs traditionally suffered from long boot times that containers typically haven’t. Boot time optimizations make VMs more accessible for ephemeral loads that need to spin up quickly.
That’s not why I’m interested in fast boot times.
Reinventing my rack cooling solution
Most of my computers have been sitting in a noise-insulated 19“ rack for 6 years or so. Although I’ve been administrating real servers for more than a decade, I still get a kick out of cosplaying as sysadmin with machines that I can actually touch, rather than being located in some rented data hundreds of kilometers away.
The rack I bought came with a temperature-controlled fan that pulled air through the whole box (just tall enough to fit under a desk), but could only run at 0% and 100% speed, because the temperature control was just a binary switch. That kinda defeated the point of the rack being noise-insulated, because even Noctua fans make some noise at 100% speed.
Static site search optimization
I get this recurring urge to have a nice website, and usually fail to pull through after doing some interesting things and subsequently losing interest. The jury is still out on how it’s going to go this time, but I certainly reached an interesting thing: Search without a full-blown search engine.
Zola, the static page renderer that’s in use here, comes with support for two search libraries out of the box:
- Fuse.js (a few more features)
- Elasticlunr.js (leaner bundle)
Both have as basic operating principle that the static page renderer generates an index file that is loaded and searched directly on the client. Elasticlunr.js has a bit smaller footprint, so I went with this one.
AI entity detection with Hailo accelerator for containerized Frigate on Debian Trixie in 2026
Frigate is probably the most comprehensive FOSS video surveillance solution out there. It comes with rich entity detection support using relatively small neural nets, and supports various hardware acceleration strategies out of the box, as well as sporting first-class support of energy efficient single board PCs like the Raspberry Pi.
Alpine Linux on Raspberry Pi
Raspbian, a Debian Linux derivative, is the standard operating choice on a Raspberry Pi, developed and recommended by the makers of the device. As someone who always favored Debian and sometimes its derivatives as well, I never gave much thoughts to alternatives on this platform.
When Docker emerged, I started noticing Alpine Linux, because it was a popular choice for small images, and I started using it for my own images. I always thought that Alpine is a child of container architecture, but the distribution is actually twice as old as Docker, and still a couple of years older than the concept of containers on Linux.
Getting my pollen forecast into Home Assistant
As someone who is affected by various plants’ pollen, knowing in advance how bad it’s going to be helps planning the day and anticipate allergy-related malady.
My country’s meteorological service publishes pollen forecasts on their website, including per-state maps. It has become a ritual to visit their site every morning to check out the updated forecast, which is slightly inconvenient.
Switching PoE devices attached to a Linksys switch with Home Assistant
Some recent office space restructuring enabled employees to take home certain now-unused pieces of equipment that the company would otherwise have to sell off or trash. I was lucky to get a Linksys LGS124 PoE-capable managed switch to simplify wiring in my rack at home.
Being able to power cycle devices remotely is really useful to get crashed/locked-up stuff to work again, but the switch web UI is a nightmare and borderline unusable on touch devices, which are sometimes the only available option on the go, so I looked into API options.
Putting to sleep and waking up Windows machines with Home Assistant
I begrudgingly tolerate some Windows machines on my network, because some games’ anti cheat malsoftware consider virtual environments cheating. While VMs do make it easier to manipulate the state of a video game to one’s advantage, it’s annoying.
Balancing between power saving and convenience, I want these machines up as quickly as possible when I need them, so I keep them in sleep and wake them up with Wake-on-LAN. Putting them back to sleep via remote desktop is mightily annoying, so I searched for remedies.
Running ESPHome on the AZ ONEBoard
The AZ ONEBoard is a development board from the electronic components seller AZ Delivery based on ESP8266. Similarly to Adafruit’s STEMMA system, it’s intended to ease the entry into embedded development with sensors that can be easily plugged into a standardized interface, without requiring soldering.
I got a few sets of those with sensor modules for temperature, humidity, volatile organic compounds (VOC, and by extension eCO2), and brightness so I could get some sensors into the still-sensorless spots in my apartment.
Trains seat reservations
Some friends and I were traveling from Slovenia to Austria by train recently. It was a busy, so naturally we had reservations, and naturally, we were involved in a dispute regarding said reservations. Eventually, our seats’ challengers left when the conductor told them that they were in the wrong car.
From this experience, we deduced that train reservations were inherently flawed, and spent a bit of the remaining train ride coming up with a simple, easy to implement solution to remove a bit of ambiguity from train seat reservations.
Slow Laravel IDE helper generation
While working on a pretty standard headless Laravel app, I got really annoyed by how long composer install took whenever switching to branches with varying dependencies. Some hooks had been added recently, which invited the assumption that the experience would be the same for my peers. Retrospective was just around the corner, so I brought the topic up before taking a closer look myself, and was surprised that I was the only one suffering from this. Execution times were in the lower single-digit seconds for everyone else, while I was waiting nearly indefinitely.
Working around a broken SD card slot on a Raspberry Pi
While moving a cable, I violently ripped the SD card out of my Raspberry Pi by accident, breaking some of the slot’s plastic in the process. I was certainly careless, but using flimsy plastic for a component that can receive quite a bit of physical stress is probably not the best idea.
Suspicious disk failures
The disks in my home server have been acting up lately: Two of them (which I bought at once a few years ago) deliver different results when I hash a file multiple times, another just randomly hangs sometimes for a few minutes. The SATA and power cables seemed fine, replacing them had no effect on the problem. So, why not check what wisdom S.M.A.R.T. has to offer?
Distributed document creation
One of my jobs involves creating documents. >10MiB PDFs, or piles of dead trees, if you will. Big documents with several contributors, providing revision after revision of their part of the cake.
So I bought one of those fancy South Korean IPS monitors...
Recently, people on the Internet have been talking about (comparatively) cheap 27“ monitors from South Korea with a glorious 2560x1440 resolution. Jeff Atwood and Scott Wasson wrote about it, and summarized their critiques fairly positively.
For something around €300, you can order a monitor like this from a South Korean ebay vendor. Shipping and an international power adapter are included. The monitors are of brands I’ve never heard of in the West, so I guess they mainly supply Asian countries.
Developing software for people with disabilities
This article was written a long time ago. It may contain some broad generalizations that are not accurate.
My current internship at LIFEtool focuses on finding ways to utilize the Kinect as an input method for people with motoric disabilities. So far, I’ve been experimenting mainly with body poses and touching stuff (like a virtual button) as ways to express an intention.