56,966 blogs · [ { "id": "01a087d4-99c4-73f5-ab13-6236aedf6541", "title": "Arch Linux with Hyprland (2025 edition)", "url": "https://rich.grundy.io/blog/arch-linux-with-hyprland-2025-edition/", "published_at": "2025-09-27T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236aeae1a07", "title": "Maintaining my GPG setup", "url": "https://rich.grundy.io/blog/maintaining-my-gpg-setup/", "published_at": "2025-02-05T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236ae6295e6", "title": "Auto hibernate/wake a Linux machine on a time schedule with Systemd", "url": "https://rich.grundy.io/blog/auto-hibernate-wake-a-linux-machine-on-a-time-schedule-with-systemd/", "published_at": "2024-03-04T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236ad6e442c", "title": "My keyboard setup for productivity", "url": "https://rich.grundy.io/dev-setup/keyboard-setup/", "published_at": "2024-02-14T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236ace35e39", "title": "My Neovim setup 2024", "url": "https://rich.grundy.io/blog/my-neovim-setup-2024/", "published_at": "2024-02-04T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236acc0130c", "title": "Conditionally setting gitconfig", "url": "https://rich.grundy.io/blog/conditionally-setting-gitconfig/", "published_at": "2024-01-17T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236ac0bd9e7", "title": "NuPhy Air60 v2 keyboard review", "url": "https://rich.grundy.io/blog/nuphy-air60-v2-keyboard-review/", "published_at": "2024-01-13T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236ab1d0196", "title": "Roll your own Ngrok alternative", "url": "https://rich.grundy.io/blog/roll-your-own-ngrok-alternative/", "published_at": "2021-10-19T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236aa4c9405", "title": "Making an Array unique in JavaScript", "url": "https://rich.grundy.io/blog/making-an-array-unique-in-javascript/", "published_at": "2021-10-12T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236aa045fac", "title": "Rails includes/join causing slow queries?", "url": "https://rich.grundy.io/blog/rails-includes-join-causing-slow-queries/", "published_at": "2021-09-29T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a9cbbcc2", "title": "Caching assets on Netlify", "url": "https://rich.grundy.io/blog/caching-assets-on-netlify/", "published_at": "2021-09-12T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a97b135c", "title": "Access your home network from anywhere with ZeroTier", "url": "https://rich.grundy.io/blog/access-your-home-network-from-anywhere-with-zerotier/", "published_at": "2021-09-06T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a94bef9a", "title": "Konsole on KDE slow to start?", "url": "https://rich.grundy.io/blog/konsole-on-kde-slow-to-start/", "published_at": "2021-07-27T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a937d4d1", "title": "Be careful with useEffect", "url": "https://rich.grundy.io/blog/be-careful-with-useeffect/", "published_at": "2021-07-23T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a924d384", "title": "Ignore large refactor commits with Git blame", "url": "https://rich.grundy.io/blog/ignore-large-refactor-commits-with-git-blame/", "published_at": "2021-07-20T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a83d8da2", "title": "Steam Deck", "url": "https://rich.grundy.io/blog/steam-deck/", "published_at": "2021-07-17T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a8086407", "title": "Linux commands for backups: pv", "url": "https://rich.grundy.io/blog/linux-commands-for-backups-pv/", "published_at": "2020-10-27T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a72bc47d", "title": "Linux commands for backups: Tar", "url": "https://rich.grundy.io/blog/linux-commands-for-backups-tar/", "published_at": "2020-10-09T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a6524f55", "title": "Mounting LVM raw disk image on Linux", "url": "https://rich.grundy.io/blog/mounting-lvm-raw-disk-image-on-linux/", "published_at": "2020-10-06T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a5595e93", "title": "Archlinux on encrypted btrfs with systemd-boot and KDE", "url": "https://rich.grundy.io/blog/archlinux-on-encrypted-btrfs-with-systemd-boot-and-kde/", "published_at": "2020-05-05T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a4c1b0e0", "title": "Application error handling with Honeybadger", "url": "https://rich.grundy.io/blog/application-error-handling-with-honeybadger/", "published_at": "2014-06-02T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a4362475", "title": "Rails continuous integration with Semaphore", "url": "https://rich.grundy.io/blog/rails-continuous-integration-with-semaphore/", "published_at": "2014-05-29T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a423d7e3", "title": "Setting up a valid SSL certificate for Subsonic", "url": "https://rich.grundy.io/blog/setting-up-ssl-cert-for-subsonic/", "published_at": "2014-04-11T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a34fdabc", "title": "Securely backup your VPS using Duplicity & GnuPG", "url": "https://rich.grundy.io/blog/securely-backup-of-vps-with-duplicity-and-gpg/", "published_at": "2010-04-07T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a2cef49b", "title": "Simple backup script written in Ruby", "url": "https://rich.grundy.io/blog/simple-backup-script-written-in-ruby/", "published_at": "2008-08-18T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a23b5b84", "title": "Setting up Nginx with Rails", "url": "https://rich.grundy.io/blog/setting-up-nginx-with-rails/", "published_at": "2008-05-22T00:00:00+00:00" }, { "id": "01a087d4-99c4-73f5-ab13-6236a13e5ede", "title": "Tinymce Syntaxhighlighter Plugin", "url": "https://rich.grundy.io/blog/tinymce-syntaxhighlighter-plugin/", "published_at": "2008-04-07T00:00:00+00:00" } ] posts Claim your blog
Back to rich.grundy.io
Blog · corpus.blog/blogs/rich.grundy.io/posts

rich.grundy.io

rich.grundy.io

2025

2024

2021

2020

2014

2010

2008