{"url":[{"loc":"https:\/\/calbryant.uk\/about\/","lastmod":"2026-01-26T00:01:43+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/astralbrowser-designing-an-incredibly-fast-but-niche-file-search-engine\/","lastmod":"2026-03-24T12:19:55+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/","lastmod":"2026-03-24T12:19:55+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/pythion\/","lastmod":"2026-03-24T12:19:55+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/software\/","lastmod":"2026-03-24T12:19:55+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/svelte\/","lastmod":"2026-03-24T12:19:55+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/","lastmod":"2026-03-24T12:19:55+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/typescript\/","lastmod":"2026-03-24T12:19:55+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/web\/","lastmod":"2026-03-24T12:19:55+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/3dprinting\/","lastmod":"2026-01-27T18:04:59+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/automation\/","lastmod":"2026-01-27T18:04:59+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/bar\/","lastmod":"2026-01-27T18:04:59+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/ctrl-alt-drink-adventures-building-a-garden-bar-with-a-hidden-motorised-drinks-cabinet\/","lastmod":"2026-01-27T18:04:59+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/diy\/","lastmod":"2026-01-27T18:04:59+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/garden\/","lastmod":"2026-01-27T18:04:59+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/home\/","lastmod":"2026-01-27T18:04:59+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/outdoor\/","lastmod":"2026-01-27T18:04:59+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/woodworking\/","lastmod":"2026-01-27T18:04:59+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/ai\/","lastmod":"2025-11-08T10:01:39+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/home-assistant\/","lastmod":"2025-11-08T10:01:39+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/linux\/","lastmod":"2026-02-17T20:38:54+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/python\/","lastmod":"2026-01-25T11:04:24+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/training-a-new-ai-voice-for-piper-tts-with-only-4-words\/","lastmod":"2025-11-08T10:01:39+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/tts\/","lastmod":"2025-11-08T10:01:39+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/electronics\/","lastmod":"2026-01-25T11:04:24+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/hifi\/","lastmod":"2026-01-25T11:04:24+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/manufacturing\/","lastmod":"2026-01-25T11:04:24+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/openscad\/","lastmod":"2026-01-25T11:04:24+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/rackmounting-that-which-should-not-be-rackmounted\/","lastmod":"2026-01-25T11:04:24+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/3d-printing-giant-things-with-a-python-jigsaw-generator\/","lastmod":"2025-08-26T01:16:56+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/3d-printing\/","lastmod":"2025-10-26T12:20:31+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/cnc\/","lastmod":"2025-10-25T22:27:30+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/design-build-of-some-curved-fully-parametric-speaker-cabinets\/","lastmod":"2025-10-25T22:27:30+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/drones\/","lastmod":"2025-08-07T09:21:47+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/hacking-gps-into-the-meteor-75-pro-a-tiny-fpv-drone\/","lastmod":"2025-05-05T22:50:44+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/hardware\/","lastmod":"2025-08-26T01:16:56+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/a-comprehensive-guide-to-fpv-drone-technology\/","lastmod":"2025-08-07T09:21:47+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/diy-fpv-flight-simulator-using-a-vtx-control-receiver-and-hdmi-converter\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/etc\/","lastmod":"2026-03-09T20:14:09+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/better-pc-cooling-with-python-and-grafana\/","lastmod":"2025-08-26T01:16:56+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/networking\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/nftables\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/semi-automatic-whole-house-iphone-internet-failover-with-nixos\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/cnc-routing-speeds-and-feeds\/","lastmod":"2025-03-26T02:08:53+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/machining\/","lastmod":"2025-03-26T02:08:53+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/bash\/","lastmod":"2026-02-17T20:38:54+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/destroying-the-right-server-with-colour-association\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1531719992084930561\/","lastmod":"2022-06-03T21:47:49+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/","lastmod":"2022-06-03T21:47:49+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/pushing-openscad-to-the-max-with-discipline-and-imagemagick\/","lastmod":"2025-10-26T12:20:31+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1365605271310127105\/","lastmod":"2021-08-19T19:11:08+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1340313720501788674\/","lastmod":"2020-12-19T15:11:45+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1332962943361818624\/","lastmod":"2020-11-29T08:23:32+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1326253041381601280\/","lastmod":"2021-06-22T23:26:34+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1321744357716828162\/","lastmod":"2021-06-22T23:26:34+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/bios\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/the-ultimate-thinkpad-x230\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/thinkpad\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1305933920031080448\/","lastmod":"2020-09-19T17:08:50+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1305227988993220613\/","lastmod":"2021-06-22T23:26:34+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1298617670246502401\/","lastmod":"2020-09-14T21:38:33+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1280220616000495616\/","lastmod":"2020-09-14T21:38:33+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1274809246656475138\/","lastmod":"2020-09-19T08:20:27+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1273718169157480449\/","lastmod":"2021-06-22T23:26:34+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1270757305563439110\/","lastmod":"2020-09-14T21:38:33+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/1266660350138691584\/","lastmod":"2020-09-19T08:20:27+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/gpg\/","lastmod":"2026-02-17T20:38:54+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/gpg-agent-with-a-yubikey-for-ssh-code-signing-and-passwords\/","lastmod":"2026-02-17T20:38:54+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/security\/","lastmod":"2026-02-17T20:38:54+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/ssh\/","lastmod":"2026-02-17T20:38:54+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/yubikey\/","lastmod":"2026-02-17T20:38:54+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/dsnet-a-new-cli-tool-to-manage-a-wireguard-vpn-fast\/","lastmod":"2025-08-26T01:16:56+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/golang\/","lastmod":"2025-11-08T10:01:39+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/vpn\/","lastmod":"2025-08-26T01:16:56+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/wireguard\/","lastmod":"2025-08-26T01:16:56+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/coffee\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/modifying-my-gaggia-classic-espresso-machine-with-a-pid-controller\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/home-automation\/","lastmod":"2025-08-09T15:24:49+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/universal-wall-mounted-touchscreen-bezel\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/large-horn-subwoofer-build-for-mountains-of-bass\/","lastmod":"2025-11-08T10:01:39+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/dstask-a-terminal-based-git-powered-task-manager\/","lastmod":"2025-11-08T10:01:39+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/976902386391371777\/","lastmod":"2021-06-22T23:26:34+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/898535879211442176\/","lastmod":"2020-09-14T22:41:58+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/882499097139261440\/","lastmod":"2020-09-14T22:41:58+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/864759798365118465\/","lastmod":"2020-09-14T22:41:58+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/810993515601633281\/","lastmod":"2020-09-14T22:41:58+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/microblog\/810990471275249664\/","lastmod":"2020-09-14T22:41:58+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/3d-printed-wall-mounted-touchscreen-panels-from-cheap-tablets\/","lastmod":"2025-08-09T15:24:49+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/esp8266-based-tank-level-sensor\/","lastmod":"2025-07-20T23:41:59+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/quick-hack-breadboard-vesa-laptop-stand\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/quickhack\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/homeplug-av-network-failover\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/hacking\/","lastmod":"2025-08-25T15:01:56+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/rcdos-cause-a-power-cut-from-your-phone\/","lastmod":"2025-08-25T15:01:56+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/dsdrop-instant-file-sharing-server\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/javascript\/","lastmod":"2025-07-20T23:59:30+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/nodejs\/","lastmod":"2025-07-20T23:59:30+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/introducing-algalon-a-network-portal-that-measures-health\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/monitoring\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/diy-linkwitz-riley-active-crossover-to-get-more-out-of-my-speakers\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/introducing-megafilter-a-ring-buffer-based-rss-reader-web-app\/","lastmod":"2025-07-20T23:59:30+01:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/the-demise-of-google-reader\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/tags\/git\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/simple-node-app-deployment-with-git-and-forever\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/blog\/vim-hate-it-then-love-it\/","lastmod":"2025-03-14T12:38:36+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/prestest\/","lastmod":"2025-11-02T09:54:57+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/meta\/","lastmod":"2026-02-13T11:24:37+00:00","changefreq":"monthly","priority":"0.5"},{"loc":"https:\/\/calbryant.uk\/","lastmod":"2026-03-11T19:08:05+00:00","changefreq":"monthly","priority":"0.5"}]}