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:
I'm just glad my personal carousel cringe frequency went down over the last
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.
python3-future is required as a workaround, because debian ships a old
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.
I don't really like modals. I think they're a scourge unleashed upon us by
bad ux designers. This pretty much sums up how I feel about modals:
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:
I wonder why this never was topic at school/university for me.
I occasionally encounter people who never heard about reproducible builds
before. Since this is a very important technique I thought I should share the
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...
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:
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
su thou requires to also specify
su $USERNAME -p -c groups
Not hard either, but a bit unintuitive, especially when the error message just
This account is currently not available.
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:
- Start htop
- press F2
- go to Columns
- select IO_RATE from available columns
There are a couple of other interesting columns in there as well. Definitely
worth a look.
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
I needed to get TLS certs with lets encrypt for a Debian 9 (Stretch)
It's super easy to get TLS certificates with
certbot. Please note that there
are several ways to do a ACME verification. Using
apache looks similar to
using nginx. There's also a standalone server built into certbot should you
have no http server running.
# install required packages
sudo apt install certbot python-cerbot-nginx
# get certificates
# use the fqdn (full qualified domain name) of the machine you're running
# this on instead or example.com. Also supply a mail address for
# notifications from lets encrypt instead of email@example.com
sudo certbot certonly --agree-tos --nginx -d example.com -m firstname.lastname@example.org
# add cronjob for renewing certs
sudo bash -c '(crontab -l; echo "@daily certbot renew --quiet") | crontab -'
That's it. Go ahead and take a look at your certificates.
sudo ls -l /etc/letsencrypt/live