The SafeDNN project ended in December 2023.
I decided to take January off to rest and work on free software.
Here’s a summary of what I worked on after returning from a week-long ski trip.
Let’s start with Alpine Linux.
I’ve packaged the new libcamera-based Raspberry Pi camera stack.
I built it, solved some problems, tested it and
submitted the package to aports.
The old raspicam API is deprecated, so this package, once it is merged,
will be a convenient way to switch to the new one.
Thanks to ikke’s hint on IRC (#alpine-devel on OFTC), I’ve also written
a wiki page on an alternative way to upgrade the kernel on diskless
Alpine on Raspberry Pi.
It’s handy when you need to upgrade to a version that is available in the package
repositories but is not yet part of an Alpine release.
I revamped my own Alpine package repository, which is now available at
alpine.krystianch.com and includes some packages that are not available in
the official ones.
To complete it I set up a Raspberry Pi B+ as a dedicated builder so besides
packages for x86_64, there are also some built for the armhf architecture.
Since I started using WireGuard, I dreaded adding new devices to the network.
Generating keys, assigning addresses, creating and importing configs, testing
the connection all required some careful work.
I’ve searched for a solution for that, but I didn’t really like anything that was
So I made wgpeer.
It’s a convenient shell script for adding new peers to a network.
But please note that it mainly caters to WireGuard setups with a central hub.
I’ve installed OpenWrt on an Edgerouter X in my home network.
It was pretty painless and the software is way better than the Ubiquiti’s stock
Its default configuration was surprisingly good.
For example, local name resolution under the .lan domain is set up out of the
Configuring the firewall, Wireguard, and DDNS is very easy and convenient.
The LuCI web interface is an exceptional piece of software.
Speaking of OpenWrt’s ddns-scripts, I’ve done some work on a new script
that sends updates to Hexonet.
The basic functionality is there, and it is running on my router and updating
correctly as I write this, but few ddns-scripts settings and features are
Nevertheless, you can find it here.
There was also some time for experimental projects such as my new home video
It’s a development of an idea I had in the past but this time more polished
and on a larger scale (supports multiple cameras).
It includes live previews in the browser, cameras with interchangeable lenses
(thanks to the RPi HQ Camera), quick manual on/off switch and recording
LEDs for privacy.
Everything done by integrating free software components such as ffmpeg.
I published a post about my HSV night light on this blog and added
a demonstration video to an older one.
I took some time to organize my notes using nb.
I’m still new to this tool, but I’m liking it so far.
I also brushed up on neural network math so that I’m sharp before the first day
of my new job.
Speaking of which, tomorrow is that first day.
I’m going to work at Comtegra as an AI / DevOps engineer.
I’m very excited.
It’s a medium-size Polish company located in Warsaw that specializes in system
integration and have their own cloud solution called Comtegra GPU Cloud,
which I’ll be working on.
I’ve used it when I worked at the Warsaw University of Technology and quite
liked it for the simplicity of its user interface.
I can’t wait to look at the internals.
See you next time!