Hello

Cats (The Musical)

2 minute read Published: 2024-02-25

Cats is a musical that premiered in the early 1980's with Pop music. And it's 1998 DVD recording is free on Youtube. The musical has some symbolic story that mostly serves as glue to connect the musical numbers. There's also a movie but that had some very serious issues which priorised the very minimal story over the music and slaughtered most of the music.

Good bye Writefreely, hello Zola

3 minute read Published: 2024-01-02

Writefreely is a pretty calm and clean blogging software. Pretty much a "here's the editor, I'll take care of the rest." type of software. That's nice and pretty much what I was looking for, coming from Hubzilla. It does RSS/Atom and even ActivityPub and comes with a nice and boring default theme that worked for me.

Whacky Windows

2 minute read Published: 2022-06-22

Microsoft has some strange ideas about filesystem layouts in general and drive letters are strange as well. Specificly Microsoft is unsure about what are valid drive letters. The GUI (explorer) hides all those tricks, meaning they can be used to hide data. They are still accessible, though. They work at least since Windows NT 4 and still work in Windows 10 and will probably continue to work for quite a long time.

Tor-Snowflake on NixOS

2 minute read Published: 2022-03-05

Snowflake is a tool that helps users circumvent censorship when Tor is blocked.

Running a snowflake proxy on NixOS is simple. It is already packaged and just needs to be setup as a service.

I decided to wrap it in a container as well - because I can and NixOS makes it incredibly simple.

Debian packaging tools notepad

1 minute read Published: 2022-02-03

Some snippets of code that I've used or had to use. This post will probably get updated when I find something new.

- name: Finish the installation of broken packages
  changed_when: false
  environment:
    DEBIAN_FRONTEND: noninteractive
  command:
    cmd: dpkg --force-confdef --force-confold --configure -a

Pipewire and copying audio to two outputs

1 minute read Published: 2021-12-29

#Pipewire is a nice replacement for #Pulseaudio, even if it still lacks some features and tooling. I switched to pipewire a couple of weeks ago and it solved many small papercuts that pulseaudio had for me, like USB audio being broken after it was disconnected once.

Sometimes I want audio from a single source (e.g. a stream played by firefox) to go to multiple sinks: two headphones for example or speakers and headphones.

Bash: Import variables from a .env file

1 minute read Published: 2021-07-26

This sets and exports all variables set in a .env file that can also be used by systemd to setup environment variables.

# Read and export the variables from .env
source "$HOME/.env"
while read -r var; do
        export "${var?}"
done < <(sed -e 's_=.*$__' "$HOME/.env")

Update: Apparently set -a / set +a before and after the sourcing makes it a lot easier. Thanks @bekopharm@social.tchncs.de for this hint.

#bash #systemd

various FFMPEG command lines

1 minute read Published: 2021-07-24

A selection of various command lines for #ffmpeg that I either found online and used and adapted somehow or built myself

Ansible run_once & when

1 minute read Published: 2021-05-26

Ansible has issues with "run_once" and "when" in the same task. If the "when" only evaluates to true for some hosts, it's basically undefined wether the task will run or be skipped based on whatever host happens to be the first one to be evaluated. If the first one is skipped, the task won't even run once if all others would evaluate as true.

Ansible ... why???

1 minute read Published: 2021-05-05
with_items: "{{ old_mounts | sort | reverse }}"

results in...

item=<list_reverseiterator object at 0x7fdc252dad60>

The "fix" is to use the list filter:

with_items: "{{ old_mounts | sort | reverse | list }}"

Removing SSH host keys from AWX

1 minute read Published: 2021-02-17

I had to figure out a way to remove specific hosts that had generated new host keys from the SSH known hosts file on the AWX system. What I came up with is the following playbook:

- hosts: all
  gather_facts: false
  tasks:
  - name: Remove host key from known_hosts
    command:
      cmd: ssh-keygen -R {{ inventory_hostname }}
    delegate_to: "localhost"

I just run this playbook with the limit set to the host or hosts I want to clear and have setup a template that just asks me for that limit.

I known that there is a module known_hosts, but it has a shortcoming in my opinion: It points to ~/.ssh/known\_hosts by default instead of parsing the ~/.ssh/config file to determine the default location.

#ansible #awx

Shaarli on NixOS

5 minute read Published: 2020-11-09

#PHP #Webapplications in #NixOS are a bit special, as they commonly violate the split between configuration, data and application. Sometimes it's all in the same directory but more commonly it's a subdirectory that contains the data. Packaging the sources can be easy or complicated, depending on wether there is some build process. For Shaarli I just use their full.tar.gz and don't have to worry about that.

PostfixAdmin & Dovecot & NixOS

3 minute read Published: 2020-08-20

Got a message from a #freifunk colleague that users are unable to change their password on our mailserver. They just get bounced back into the login form of our PostfixAdmin after submitting it. Quick check: Yes, I have the same problem. Even the admin login is broken. No idea when it broke. #NixOS allows me to quickly activate an old configuration and software by executing a script (/nix/var/nix/profiles/system-476-link/bin/switch-to-configuration test), so I went back 15 days. That old generation worked. First success.

It's yet another tool: mbuffer

4 minute read Published: 2020-07-05

mbuffer reads data from an input and writes it to one or more outputs. The more important thing though is the buffering, as you can just tell it to use X amount of memory as a buffer, the default is usually 2 MBytes.

It's yet another tool: direnv

2 minute read Published: 2020-07-04

direnv manages shell environments.

direnv is one of these tools that you basically setup once and after that forget that it's there. You just notice it when it does the job you set it up for and are happy it saves you a lot of hassle.

Pulseaudio and Audio routing... or how to make Jitsi stream game audio and the microphone

3 minute read Published: 2020-04-28

I kind of wonder why there's no decent user interface for pulseaudio - or if it exists, why it's unknown. Pulseaudio is pretty powerful, but the usability is bad. A simple graph application that lets you connect the dots would go a long way. I remember something like that on Windows about 15 years ago, you could throw in various inputs, outputs and filters and just connect them by dragging lines. Not sure if it still exists or is usable.

Here's what I want to do:

  1. Play a game
  2. Talk on the microphone
  3. Listen to other people on Jitsi

Old Hardware and old texts that shouldn't be there

20 minute read Published: 2020-03-31

I've recently started going through my attic again and saw my old #Commodore hardware. I grew up on a #C64 and its 1541 disk drive that was able to transfer about 300 bytes per second into the small 64 kByte RAM that the C64 has. I even got ahold of some more hardware like a C128 and a Plus4 back then, but didn't really do much with them. And I bought a 1581. One of the rare 3½" disk drive that Commodore produced back then, although I was late to the party. I probably bought it around 1994, I believe the german magazine 64'er had a story one day that someone had found a stock of old 1581 disk drives and I absolutely needed one back then. I had no real use for it, but I scraped together my pocket money and got one. I still remember wondering why there was so little data on the 1581 demo disk back then, but never investigated it further. It only had about 10 directory entries. Lacking contact to other 1581 owners I had no way to figure out that my disk was faulty.

Good bye Hubzilla

2 minute read Published: 2020-03-27

#Hubzilla is a jack-of-all-trades. It's a cloud storage, allows pictures, blogging, allows staying in contact with others. The privacy controls are top-notch. It even has pretty much automated channel migration between hubs if you want to move to another server.

Mastodon probably didn't even notice Hubzilla as it steamrolled past Hubzilla's usage numbers and became the de-facto standard. At least it's also using a public protocol, so Hubzilla can exchange messages. I registered on a private Mastodon server a while back to join that community.

Baloo kills my system

1 minute read Published: 2019-09-20

New Laptop. Decided to try #KDE/Plasma 5 on it. Battery fully charged.

Fun with jq

1 minute read Published: 2019-09-17

I found myself having to merge two json arrays of objects based on an ID in a shell script. #jq as a tool was pretty much a given and a quick search resulted in several solutions. None of them worked for me, as apparently IDs usually are not numbers anymore and everyone expects them to be strings. My IDs were numbers and jq blamed me for it:

NixOS-Shell

5 minute read Published: 2019-01-29

nixos-shell is a small shell script written by Jörg Thalheim for Nix and #NixOS. What it does is very simple: It takes a machine configuration from your file, builds a VM with it and runs the VM directly in your terminal with sensible defaults.

sshfs without sshfs. I'm lazy.

4 minute read Published: 2018-12-05

I've got several systems to administrate at work. It's common that I have to access them through ssh or copy a file from one system to another. I love the Solaris automounter that's configured on /net by default, meaning that if you access /net/server1/nfsshare2/path/to/file you get exactly what you expect: the file. Now the automounter isn't exactly rocket science and it's easy to setup on a linux system, but I don't want to access everything through NFS and all the security issues that come with that. Luckily, #SSHFS is part of pretty much every linux distribution and the server just requires sftp, which is default on pretty much every system, as it's just a subsystem of the ssh daemon and the ssh daemon handles authentication.

Adding packages to NixOS on a single system

2 minute read Published: 2018-11-20

So... time to finally add some nix content. This one is probably more along the lines of "did you know ... ?"

Hubzilla on NixOS

3 minute read Published: 2018-08-11

NOTE: This text describes how I set up #Hubzilla on #NixOS. As I'm no longer using Hubzilla, I've just copied this text over for archival purposes.

NixOS? Ansible and Puppet are just workarounds

3 minute read Published: 2018-08-01

#NixOS is a linux distribution that has a very different approach compared to other distributions.

You do not change configuration files of applications. You just change the build instructions that the package manager Nix uses to build the system. On NixOS the full system is rebuilt everytime you want to change even a minor detail.