uniq_

Mozilla TLS configuration generator

When you're new to web hosting, finding decent TLS settings is not trivial. Retrospectively a lot of time I've put into this feels wasted, because finding optimal TLS settings basically is a never ending scientific effort. IMHO web-servers should be pre-configured for getting you decent TLS scores, but they're not.

The next best thing to getting a sane default configuration is using a well-maintained configuration generator. Luckily Mozilla is publishing one:

https://ssl-config.mozilla.org

It's a super useful tool, because crafting good TLS configurations requires a lot of expertise. While this saved me quite some time and headaches, it's probably still a good idea to test those generated TLS configs against SSL Test, Mozilla Observatory, etc. Double-checking is important when doing security relevant stuff.

carousels are annoying still

It feels to me, that carousels got out of fashion, or at least they rarely annoy me these days. Which is a good thing! Today thou I was confronted with a particularly annoying one. It's probably old news, but I occasionally still like to point people to:

http://shouldiuseacarousel.com

I'm just glad my personal carousel cringe frequency went down over the last view years.

setup vim autocompletion (on debian 10)

I think youcomplteme is a great autocompletion addon for vim. It's simple but effecite. It's also packaged for debian.

sudo apt install vim-addon-manager vim-youcompleteme python3-future
vam install youcompleteme
echo 'let g:ycm_global_ycm_extra_conf = "/usr/lib/ycmd/ycm_extra_conf.py"' >> ~/.vimrc
echo 'filetype on' >> ~/.vimrc

That's it. I've been using this for years and I'm quite happy with it.

Note: python3-future is required as a workaround, because debian ships a old version of youcompleteme. When you're developing python and use virtual-env, this can hide the future module form you path. This then triggers the previously mentioned bug. vim will prompt YouCompleteMe unavailable: No module named 'future' on startup. An easy mitigation is to just install that moduel to your venvs too, eg. with: python3 -m pip install future.

Semantic versioning

I think it's funny how version numbering actually is a engineering technique for avoiding incompatibilities, but made it's way to popular culture. I guess it's hard to escape hearing about Web 2.0, Industry 4.0, or whatever. Thou isn't Web 2.0 already a thing of the past?

Anyway version numbering actually is an great engineering tool. Especially when done right. So here's how it's supposed to work:

https://semver.org

I wonder why this never was topic at school/university for me.

Reproducible Builds Manifesto

I occasionally encounter people who never heard about reproducible builds before. Since this is a very important technique I thought I should share the link.

https://reproducible-builds.org

It's basically a technique for making sure software was not tampered with. Overall I think every piece of software should be built reproducibly, especially infrastructure like libraries, operating systems, app-stores etc...

Keep a Changelog dot com

Sometimes it's helpful reading through a changelog. Not may projects keep one. Often enough they're not well kept either. Today I stumbled upon a nice guide for structuring changelogs, I really hope this becomes an industry standard:

https://keepachangelog.com

su was weird today

I can't login into some accounts on some of my GNU/Linux systems. eg. Because some of them are service accounts with no login shell, or simply because it's impolite logging-in to other peoples accounts.

But I needed to know whether one specific account was member of a group. Using sudo that's trivial.

sudo -u $USERNAME groups

Using su thou requires to also specify -p (aka. --preserve-environment).

su $USERNAME -p -c groups

Not hard either, but a bit unintuitive, especially when the error message just says: This account is currently not available.

use htop to inspect disk loads

Though iotop is very useful, I was made aware that htop also has support for displaying IO meters. Here's how to add such a column:

  1. Start htop
  2. press F2
  3. go to Columns
  4. select IO_RATE from available columns

There are a couple of other interesting columns in there as well. Definitely worth a look.

Run software with graphic ui using sudo on Debian 9

Sometimes it's necessary to run software as root. For example when running KVM for booting a local hard drive, flash drive, sd-card etc.

# allow kvm to open a window while running as root
xhost +si:localuser:root