Articles

Creating controllable D state (uninterruptible sleep) processes2024-02-05
Signals in prod: dangers and pitfalls2022-09-27
tmpfs inode corruption: introducing inode642021-07-02
Programming/gaming with the Kinesis Advantage 22020-11-16
mutt support for Gmail's "mute" feature2020-06-12
psi-notify: Alerting before CPU/memory/IO becomes oversaturated2020-05-06
Unprivileged userland containers without root or userns2020-04-13
"1195725856" and other mysterious numbers2020-01-13
Linux memory management at scale2019-07-18
The curious case of stalled squashfs reads2018-04-17
In defence of swap: common misconceptions2018-01-02
Adding power related targets to systemd2017-10-29
cgroup v2: Linux's new unified control group hierarchy2017-03-01
Toggling Yubikey (and other input devices) on/off on a timeout2016-10-22
X freezing as "systemd-logind: got pause for [...]"2016-10-18
Cleaning, muxing, and extracting subtitles using ffmpeg and the Python srt library2016-09-04
SRECon Europe 20162016-07-20
Arch Linux on the T460s — first thoughts2016-05-18
Lessons learned running SSL/TLS at scale2016-02-17
Auto-merging successful builds from Travis CI2015-09-27
Removing namedtuple docstrings for Sphinx2015-09-20
Folding Python docstrings in vim2015-02-26
Mandarin learning resources and advice2015-01-29
Migrating Jekyll to Amazon S3 and CloudFront2014-10-03
Using multiple isolated SSH keys with agent forwarding2014-06-05
Unlocking storage devices locked using a password made of scancodes2014-02-21
Finding out why a package was held back with apt2014-02-10
Comments on the new Stack Exchange Android app2014-01-28
Backing up EFS and modem on the N7100/t03g2013-12-13
Securely automating rsync to archive sensitive files2013-11-04
Fixing stale SSH sockets in tmux2013-08-02
Archiving deleted mails in Dovecot without using a namespace2013-07-10
Setting up a local GitHub mirror with cgit, gh-mirror, and git daemon2013-07-05
Running fsck on filesystems inside a partitioned image2011-06-01