I'm not sure why Debian developers think it's good to enable bluetooth
automatically on boot. I think this is a privacy issue and would prefer
bluetooth to be "opt-in". So here's how to make sure bluetooth is turned off by
default:
# install tool for disabling bluetooth
# it's a shame debian has no api for this!
sudo apt install rfkill
# setup systemd unit
cat << EOF | sudo bash -c 'cat > /etc/systemd/system/disable-bluetooth-on-startup.service'
[Unit]
Description=Make shure Bluetooth is disabled on system start.
After=bluetooth.service
[Service]
ExecStart=rfkill block bluetooth
[Install]
WantedBy=multi-user.target
EOF
# enable systemd unit
sudo systemctl enable disable-bluetooth-on-startup
On Debian 10 suspending ThinkPad S1 Yoga does not work for me. When I call
systemctl suspend
the device suspends and instantly wakes up again. I could
fix it by flicking the XHC switch in /proc/acpi/wakeup. I used to use persist
this in /etc/rc.local in the past. But it's not there anymore on Debian 10.
So here's how I persisted this using a systemd unit:
cat << EOF | sudo bash -c 'cat > /etc/systemd/system/thinkpad-s1-suspend-fix.service'
[Unit]
Description=thinkpad_s1_suspend_fix
[Service]
Type=oneshot
ExecStart=bash -c 'grep 'XHC.*enabled' /proc/acpi/wakeup && echo XHC > /proc/acpi/wakeup'
StandardOutput=tty
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
Now lets tell systemd to apply this fix on boot and also apply it right now:
sudo systemctl enable thinkpad-s1-suspend-fix.service
sudo systemctl start thinkpad-s1-suspend-fix.service
Too bad most computer games are non-free. But there are suprisingly many libre
games. They're not necessarily on par with their prorietary counterparts, but
they're fun too. Here's a curated list of libre games:
https://osgameclones.com
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.
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.
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
.
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:
https://modalzmodalzmodalz.com
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.
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...
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