I recently performed an overdue Ubuntu 24.04 upgrade on a few machines and as with past upgrades , I had to fix a few things after the fact. As usual, I keep any backports of packages I make for myself in my noble PPA . AppArmor fix for Brave Beta & Nightly I had to modify the brave AppArmor profile in /etc/apparmor.d/brave in order to enable proper sandboxing in Brave Beta & Nightly . Network…
Similar to what I wrote for Ubuntu 18.04 , here is how to setup an LXC container on Debian forky. Installing the required packages Start by installing the necessary packages on the host: apt install lxc libvirt-clients debootstrap Network setup Ensure the veth kernel module is loaded by adding the following to /etc/modules-load.d/lxc-local.conf : veth and then loading it manually for now: modprobe…
I started learning Go this year. First, I picked a Perl project I wanted to rewrite, got a good book and ignored AI tools since I thought they would do nothing but interfere with learning . Eventually though, I decided to experiment a bit and ended up finding a few ways to use AI assistants effectively even when learning something new. Searching more efficiently The first use case that worked for…
The recent Turris OS update from 7.2.3 to 9.0.0 took down my WiFi entirely. The wired network still works fine, but wireless is completely broken. Factory reset It turns out the Omnia has an extensive (and fast) factory reset / recovery mode via the hardware reset button. Unfortunately, the factory image didn't work for me, possibly because I don't use the stock WiFi radios anymore . Rolling back…
Ignoring SMS, which is vulnerable to SIM-swapping attacks , TOTP ( Time-based One-Time Passwords ) is probably the most popular second factor authentication method at the moment. While reviewing a pull request adding support for TOTP , I decided to investigate the current state of authenticators in 2025 with regards to their support for the various security parameters . A previous analysis from…
Despite comments on my ikiwiki blog being fully moderated, spammers have been increasingly posting link spam comments on my blog. While I used to use the blogspam plugin , the underlying service was likely retired circa 2017 and its public repositories are all archived. It turns out that there is a relatively simple way to drastically reduce the amount of spam submitted to the moderation queue:…
While most podcasts are available on multiple platforms and either offer an RSS feed or have one that can be discovered , some are only available in the form of a YouTube channel. Thankfully, it's possible to both monitor them for new episodes (i.e. new videos), and time-shift the audio for later offline listening. Subscribing to a channel via RSS is possible thanks to the built-in, but not easily…
A GitHub gist is backed by a regular git repository, but it's not exposed explicitly via the user interface. For example, this "secret" gist can be cloned using this command: git clone https://gist.github.com/fmarier/b652bad2e759675e8650f3d3ee81ab08.git test Within this test directory, the normal git commands can be used: touch empty git add empty git commit -a -m "Nothing to see here" A gist can…
Using NetworkManager and systemd-resolved together in Debian bookworm does not work out of the box. The first sign of trouble was these constant messages in my logs: avahi-daemon[pid]: Host name conflict, retrying with hostname-2 Then I realized that CUPS printer discovery didn't work: my network printer could not be found. Since this discovery now relies on Multicast DNS , it would make sense…
I know that people rave about GMail's spam filtering, but it didn't work for me: I was seeing too many false positives. I personally prefer to see some false negatives (i.e. letting some spam through), but to reduce false positives as much as possible (and ideally have a way to tune this). Here's the local SpamAssassin setup I have put together over many years. In addition to the parts I describe…