<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>Loose Ends</title><link>https://parabol.vip/</link><description>Notes on servers, databases and small tools.</description><item><title>Small server backups with restic</title><link>https://parabol.vip/posts/small-server-backups-with-restic.html</link><guid>https://parabol.vip/posts/small-server-backups-with-restic.html</guid><pubDate>Sat, 26 Sep 2026 09:00:00 +0000</pubDate><description>A short setup for encrypted, deduplicated backups to any S3-compatible storage.</description></item><item><title>Replacing cron jobs with systemd timers</title><link>https://parabol.vip/posts/replacing-cron-jobs-with-systemd-timers.html</link><guid>https://parabol.vip/posts/replacing-cron-jobs-with-systemd-timers.html</guid><pubDate>Mon, 14 Sep 2026 09:00:00 +0000</pubDate><description>Why I moved nightly jobs to timers, and the two options that make them behave.</description></item><item><title>TCP keepalive defaults and half-dead connections</title><link>https://parabol.vip/posts/tcp-keepalive-defaults-and-half-dead-connections.html</link><guid>https://parabol.vip/posts/tcp-keepalive-defaults-and-half-dead-connections.html</guid><pubDate>Wed, 02 Sep 2026 09:00:00 +0000</pubDate><description>Why idle connections hang for two hours after a network drop.</description></item><item><title>Reading EXPLAIN ANALYZE without panic</title><link>https://parabol.vip/posts/reading-explain-analyze-without-panic.html</link><guid>https://parabol.vip/posts/reading-explain-analyze-without-panic.html</guid><pubDate>Mon, 24 Aug 2026 09:00:00 +0000</pubDate><description>The three numbers in a PostgreSQL plan that usually explain a slow query.</description></item></channel></rss>
