Today’s lesson: Make use of package managers

I needed to distribute, backup and install some files to a large number of servers today. I had wrote most of a small script when I was reminded of a maxim that I often forget: Make use of package managers.

Everything my script did a package manager would do much better. The quickest way to create a simple package (an rpm in my case) is to simply tar up the files that need distributed (with all ownership and permissions set) then use a tool like to create an rpm. You can use similar tools for the package manager of your choice.

Before I was reminded to use a package manager I was quite content writing my little script, refining it and admiring my handiwork. I reflected some on the writing of scripts – my thoughts :

Writing scripts – ideally elegant ones – is a good bit of art and creativity to inject into the technical world of system administration and development. It is nearly alway worth the time.

I was also reminded to stop judging other people’s scripts – I don’t really judge per se, but I do tend at times to slightly frown upon someone else’s method of writing something. The cause of course is the very thing that can make a script elegant – readability versus cleverness. Too much cleverness can be annoying. No cleverness – the same. I need to give other people’s cleverness a bit more time before marking it as unnecessarily obtuse. The same goes for scripts that are a bit too verbose (a more rare issue).

Fixing Apple Mail ( / mac mail) “cannot verify username or password”

Every version of mac mail seems to have new ways to make the setup and configuration of pop3 mail not work. Today I ran into a new problem and solution.

This particular fix is for accounts that are set up and working but will not save changes made to the configuration after the initial setup. In my particular case I had set up a pop3/smtp combo without secure authentication (for a test) and now needed to go into the configuration and enable secure authentication. I checked the boxes for secure authentication but when saving I continually received the “cannot verify username and password” message.

I fixed this by going to the first tab and un-checking “Take this account online”. I was then able to save the setup. In the primary mail window I was able to take the account online and send and receive mail (in fact the account was already online despite having un-ticked “Take this account online).

Frustrating but at least it does work for those cases in which you need a POP3 mail account setup.

If this doesn’t work for for you, check these other more common issues:

  • Ensure all password fields are filled in. In many versions of mac mail, the passwords will be set blank after each attempt.
  • Likewise for the account username (which should normally be the full email address)
  • If all fields are set correctly, you many times have to repeatedly go through the process of “save/continue/etc”, verify, failure until finally it “magically” works (even though you changed nothing). I have cases where I’ve clicked 5 to 10 times to finally get it to take. I’ve not been able to find the cause (even though in most cases I controlled the server and could watch all server-side logs and connections).

Install Docker on a clean Centos 8 vps

Note: none of this actually works – just notes for now.

dnf install 'dnf-command(config-manager)'
dnf config-manager --add-repo=
dnf install --nobest docker-ce

# ideally you would install the latest but you'll find missing dependancies
# find which docker versions are available
dnf list docker-ce --showduplicates | sort

# copy the name of the latest version
# will look like
# docker-ce.x86_64            3:19.03.8-3.el7                     docker-ce-stable
# removed the architecture portion (.x86_64) and add the version separated by a dash
dnf install docker-ce-3:19.03.8-3.el7

systemctl disable firewalld
systemctl enable --now docker


source :

Enable on proxmox :

on host node

cat /sys/module/kvm_intel/parameters/nested   # should show N
echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf
modprobe -r kvm_intel
modprobe kvm_intel
cat /sys/module/kvm_intel/parameters/nested  # should show Y

# restart container
pct stop <container-id>
pct start <container-id>

# check inside container
egrep '(vmx|svm)' --color=always /proc/cpuinfo

Re-enable Firefox TLS 1.3 warnings

Firefox now refuses to load sites offering less than TLS 1.3 – at times you may need to allow this for a particular site to load/testing/etc.

However how do you re-enable for the warnings? Type :


into the address bar and then search for “TLS”

You’ll find this entry :


Change it from true to false (in the version used at the time of this post you could click the icon on the right side of the screen to flip the value from true to false).

Localized Nihilism

Do your personal sufferings have meaning? I think yes – but that meaning is likely unknowable in the short term. Perhaps a type of micro-nihilism is appropriate. Give time and thought to to understanding the world at large – God, emotion, meaning. Your own problems? Mark them as meaningless.

Self pity (both deserved and contrived) will come but don’t dwell on it. Save nihilist tendencies for your own troubles – don’t let them invade the world at large. It is a mistake to allow you own suffering to lead you to believe all of life is meaningless. Too much self-reflection is rightly deemed prideful.

Everything is under God’s control. Don’t believe in God? Ok. The universe has order. Don’t fall too hard for the idea of chaos. Chaos Theory is valid but it breaks down when you try to define actual randomness. Proving the existence of randomness is hard. It’s not a popular belief but I think our universe is very likely deterministic – one big chain of events of which even the chaotic events can be explained if one could follow the chain at that quantum level. True randomness and chaos require extra-dimensional input. They lead us back to either the supernatural or some form of multi-verse commingling (do parallel universes bump up against each other and leak into each other?)

A deterministic universe doesn’t bestow meaning, however perhaps it does give inevitability that you should find a form of strange comfort in. To be clear, my own believe is in a God that is in control (even if you choose to see him as the simulation master in a holographic fake universe). God has a righteous reason for everything that happens.


Rsync with Hetzner storage boxes

In all examples, replace u2xxxxx-sub5 and with the names of your user and storage box.

First, make sure “external reachability” and “ssh” are enabled.

You can make the base directory easily by ftp’ing in first and creating the directory. Next, open the web interface and set the base directory for the sub-account to the one you just created.

To use rsync a directory to the storage box:

rsync -aze 'ssh -p 23' directory-name-here

To use rsync a directory from the storage box into the current directory (signified by a single dot)

rsync -aze 'ssh -p 23' .

You can also connect via ftp.


Because rsync is not running as root on the remote server you cannot preserve all file ownership and symlinks (?), etc. Add the option :


to store user and permission values.

You can also use borg backup over rsync to solve this problem. I use it for some projects but it is not ideal for all uses.

How not to be taken advantage of

The more you give of yourself, the more possibility there is of an uncaring person taking advantage of you. When you befriend the down trodden and desperate, your chances increase even more.

What do I mean by “taken advantage of”? In this case I mean things serious enough to get you into trouble while trying to help. There’s no stopping the average level of being taken advantage of. It’s not worth trying to stop people from being ungrateful or mean. However you do need to guard against cases where your generosity gets you or your family into trouble.

I realized the way to protect yourself is to simply refuse to do anything dishonest. Sounds simple but I think it is very easy to slip into slight dishonesty to help someone in trouble – small lies and omissions to get them out of a bind. However when dealing with the law, it is exactly such small lies that can get you into a lot of trouble. When the law or society wants someone to blame, they’ll find every minor transgression in order to pin the blame on someone (you!).

So, when asked “Hey, could you maybe [insert some seemingly innocuous favor]” you simply reply. “I’m sorry but it would not be honest of me to do that”, etc. I imagine myself slipping into a Fred Rogers impersonation for moment – “I care for you. I won’t abandon you but I cannot do the thing you are asking.”

The key is to show the person that you still love and support them. They will be angry that you won’t do what they want. Hopefully, they will look back and realize that you supported them with your love and honest forms of help.

Faderfox SC4 Tutorial and Notes


The highest level division in the SC4 is a setup. A setup can be either a midi controller setup or sequencer setup. The SC4 can store 30 setups.

Midi controller setups contain 8 groups which each contain 8 knobs and pushbuttons (built into the knobs). By selecting different groups with the green buttons at the bottom you have access to 64 knobs and 64 button assignments at once (ie. without changing setups).

Sequencer setups contain 8 patterns. Each pattern contains 7 tracks each of which stores one of note, octave, accent, length, repeats, probability or a midi cc. Each pattern is 8 steps long. Patterns can be linked to give a total of 64 steps.


The SC4 has 30 “set ups”. A “set up” is the configuration for the knobs. Usually you would assign each setup to a particular device. For example, setup 1 might have the knobs set to control a Waldorf Blofeld, while setup 2 controls an Elektron A4. Of course you can map the knobs to any midi channel and supported message you like. The division of a setup per synth or device is only an example. You can easily have a setup whose knobs control parameters on multiple devices on different midi channels.

The important concept is this: setups configure what the knobs on the SC4 do.

You change setups by pressing both shift buttons (in the top corners of the SC4) to enter edit mode and then rotating the First encoder (labeled Setup on the top and Tempo on the bottom). When you have selected your desired setup, press the two shift buttons again. If turning the knobs does not change setups, press the knobs down once and try again.

Setups can be one of two types – midi cc’s or sequencers.

Midi cc setups will display ‘GrPx’ after being selected (short for “Group x” – we’ll discuss this below). Sequencer setups will display “Octx”, “Note” or another value.

We’ll discuss Midi cc setups first.

Midi CC Setups

Midi CC Setups send various midi controllers when the knobs are turned. Each setup has eight “groups”. Each group is a set of assignments for the 8 physical knobs on the SC4. You change groups by pressing the green buttons along the bottom of the SC4. Using groups you have quick access to 64 midi cc’s at once using the knobs (you also have 64 on/off controls by pressing the knobs).

Editing is done by entering edit mode (the same mode you enter to select a setup) and then using the knobs to edit (see manual for this – it is straight forward)

Sequencer Setups

The SC4 Sequencer mode works as follows:

  1. Select a sequencer setup
  2. Press the green buttons 7 and 8 at the same time. This puts you into “Sequencer Control” mode.
  3. Press encoder 5 to start the sequencer playing
  4. Press Green button 1 to select track one
  5. Turn the encoders to set the note for each step
  6. Press and encoder to toggle a step between on and off


To randomize a track:

  1. Select the track using the green buttons at the bottom
  2. Press left shift + the track green button to randomize the values
  3. Press right shift + the track green button to randomize the states (on/off, etc.)

Using sox to split audio file (create sample set)

mkdir sox
mv 0003\ mfb\ 522-1.aif sox
cd sox
sox -V3 mfb522.aif p.wav silence -l  0   1 0.5 0.1% : newfile : restart
sox -V3 mfb522.aif p.wav silence -l  0   1 0.1 0.1% : newfile : restart
sox -V3 mfb522.aif output.wav silence 1 3.0 0.1% 1 0.3 0.1% : newfile : restart
man sox
sox -V3 mfb_synth_ii.aif mfb_synth_ii.wav silence 1 3.0 0.1% 1 0.3 0.1% : newfile : restart
sox -V3 mfb_synth_ii.aif p.wav silence -l  0   1 0.1 0.1% : newfile : restart
sox RAW_VN_047.wav -v 0.99 -b16
sox RAW_VN_047.wav -v 0.99 -b16| less
sox -v 0.99 RAW_VN_047.wav -b16
sox -e signed-integer RAW_VN_047.wav -b16
sox RAW_VN_047.wav -b16
sox RAW_VN_047.wav -b16 out.wav
sox -e signed-integer RAW_VN_047.wav -b16 out.wav
sox -v 0.99 RAW_VN_047.wav -b16 out.wav
cd sox