Hugo's weblog on WhyNotHugo (雨果)
Recent content in Hugo's weblog on WhyNotHugo (雨果)
- Posts
- 161 from 6 Aug 2014 to 26 Oct 2026
- Posting
- weekly (34 in the last year)
- Kind
- personal blog
- Feed
- https://whynothugo.nl/posts.xml
2026 28
- Status update 2026-10
- Cutting files is a broken abstraction
- Use rsync to compare large directory trees
- Stacked PRs: fixing abstractions with more layers of abstraction
- Status update 2026-08
- Transactional system upgrades without compromise
- The brief history of lsp_lines.nvim
- ImapGoose: detecting wake-up from sleep
- Status update 2026-07 & 2026-08
- 98% isn't very much
- Status update 2026-06
- Ignore DNSSEC if you like MITM attacks
- A radiator only cares about the temperature of incoming air
- Input methods in GTK4 apps on Wayland
- Introducing µlock
- Status update 2026-05
- Status update 2026-04
- On GitHub's downfall
- Separating researcher from knowledge
- Deprecation plan for vdirsyncer
- Status update 2026-03
- Creating an XDG_RUNTIME_DIR
- Pacman syndrome
- Status update 2026-02
- Entrenching American corporations into local European payments
- They and them as singular pronouns
- You don't need a Neovim plugin manager
- Working with Git inside Vim
2025 32
- Resolve .local mDNS domains via avahi using unbound
- Programmatically provision Alpine VMs with tiny-cloud
- Status update 2025-11
- Too much less is not too much more
- Translation models between English and Chinese
- ImapGoose status update: v0.3.2
- Introducing ImapGoose
- Status update 2025-10
- Status update 2025-09
- Unaccountable systems
- I'm really happy with my Pinetime
- GPTs and feeling left behind
- Status update 2025-07
- Boycotting is about supporting an alternative
- Connecting to Bluetooth hotspot
- Status update 2025-04
- Man pages are great, man readers are the problem
- HDR on the Steam Deck
- Status update 2025-03
- Unemployment is not the problem
- Goodbye mutetab
- Change in GTK's default font
- Design for Google CalDAV support in pimsync
- ab-bday: generate icalendar events for birthdays in vcard
- Status update 2025-02
- Gamma correction and blending fonts in linear space
- One year of using the web with web fonts disabled
- Breaking the dependency treadmill
- Status update 2025-01
- Simple optional dependencies via meta-packages
- Why I don't use TikTok
- Soju failing with "too many open files"
2024 31
- URLs and percent encoding
- Exporting photos from an iPhone
- Pimsync status update 2024-12
- Injecting project versions into builds
- Vdirsyncer status update 2024-11: renaming to pimsync
- Snooze: a simpler cron
- Vdirsyncer status update 2024-10: security audit
- Vdirsyncer status update 2024-09
- Transcribing audio with whisper.cpp
- Writing an emoji input method, part 1
- Dark mode is not about aesthetics
- Status update 2024-08
- Unix domain socket support for vdirsyncer
- Quickly render the Clipboard as a QR code
- Typing non-English characters
- Introducing wlhc: wayland hot corners
- Editing filenames and directories in Vim
- Status update 2024-06
- IRC is great for public spaces
- Notes on saving coredumps
- SSH as a sudo replacement
- Status update, May 2024
- Growing my root partition to the left
- Darkman portal configuration
- Vdirsyncer status update, March 2024
- Notes on s6
- My 'lock-and-sleep' script
- vdirsyncer: rewriting status management
- Nine months of Xendmail
- Setting up an IRC bouncer (soju) on OpenBSD
- Extended usages of the primary selection
2023 34
- vdirsyncer: preparing for alpha version
- Specification and development status for valarmd
- vdirsyncer status update, November 2023
- Measuring test coverage in Rust
- Setting a battery charge threshold
- Setting up an Alpine Linux workstation
- vdirsyncer status update, October 2023
- A configuration format for vdirsyncer v2
- Debugging a non-functional pylsp
- vdirsyncer status update, August 2023
- Building and running sway-master
- vdirsyncer status update, July 2023
- Extending an expired GPG key
- senpai: a modern IRC terminal client
- vdirsyncer status update, June 2023
- Understanding the XDG access portal
- vdirsyncer status update, May 2023
- Introducing davcli
- DNS-based discovery for CalDav and CardDav
- libdav live test results
- Tracking dotfiles
- Installing postmarketOS on a OnePlus 6 with an encrypted filesystem
- Thoughts on sendmail in 2023
- vdirsyncer status update 2023-03
- AI-assisted computer interfaces of the future
- Notes on Podman
- Using a Yubikey for both GPG and TOTP
- In praise of Alpine and apk
- OpenWrt with KPN fibre optics
- vdirsyncer: looking for hosted Dav servers
- icalendar bug at NS International
- Setting up IRC redirects
- Notes on ruff
- Notes on pre-commit
2022 19
- Selection / clipboard cheatsheet
- Copying with Super+C
- Systemd, locking and sleeping
- How the clipboard works
- Shotman 0.2 development update part 2
- Shotman 0.2 development update part 1
- My packaging policy
- Please verify it's you
- Meson for Python applications
- Announcing caffeine-ng v4.0.0
- Using a Yubikey for GPG
- Quick and simple VMs with qemu
- The Murena Lies
- Status update, May 2022
- How I secure my setup with a YubiKey
- Open source platforms for open source software
- Fairphone: please lead by example!
- A vdirsyncer rewrite
- Introducing darkman v1.0.0