41554 blogs · [ { "id": "01a07dac-18e3-72b4-832c-05988d4fd19e", "title": "Lost Inputs", "url": "https://kevincox.ca/2026/08/07/lost-inputs/", "published_at": "2026-08-08T00:05:00+00:00" }, { "id": "01a07dac-18e3-72b4-832c-05988e3b5f4a", "title": "Digdoku", "url": "https://kevincox.ca/2025/11/18/digdoku/", "published_at": "2025-11-19T01:45:00+00:00" }, { "id": "01a07dac-18e3-72b4-832c-05988e55e003", "title": "NixOS PostgreSQL Major Version Upgrade", "url": "https://kevincox.ca/2025/08/24/nixos-postgres-upgrade/", "published_at": "2025-08-24T14:55:00+00:00" }, { "id": "01a07dac-18e3-72b4-832c-05988e806c0c", "title": "Losslessly Changing Video Framerate", "url": "https://kevincox.ca/2025/08/05/losslessly-change-video-framerate/", "published_at": "2025-08-06T00:05:00+00:00" }, { "id": "01a07dac-18e3-72b4-832c-05988e8813fa", "title": "I Don't Like Imports", "url": "https://kevincox.ca/2025/07/20/no-imports/", "published_at": "2025-07-20T22:15:00+00:00" }, { "id": "01a07dac-18e3-72b4-832c-05988f60487b", "title": "Toronto Fish & Chips", "url": "https://kevincox.ca/2025/05/03/toronto-fish-chips/", "published_at": "2025-05-03T21:00:00+00:00" }, { "id": "01a07dac-18e3-72b4-832c-0598900524ac", "title": "Dead Bird Features", "url": "https://kevincox.ca/2025/05/03/dead-birds/", "published_at": "2025-05-03T12:00:00+00:00" }, { "id": "01a0bb56-46df-726f-927e-90710b3158fa", "title": "Hiking in the Yukon", "url": "https://kevincox.ca/2024/10/01/yukon-hiking/", "published_at": "2024-10-01T20:25:00+00:00" }, { "id": "01a0bb56-46df-726f-927e-90710b975d66", "title": "CORS is Stupid", "url": "https://kevincox.ca/2024/08/24/cors/", "published_at": "2024-08-24T20:00:00+00:00" }, { "id": "01a0bb56-46df-726f-927e-90710c56c4f4", "title": "Semantic Versioning Doesn't Support Rolling Deprecation", "url": "https://kevincox.ca/2024/08/17/semver-rolling-deprecation/", "published_at": "2024-08-17T17:40:00+00:00" }, { "id": "01a0bb56-46df-726f-927e-90710c94a07b", "title": "Private Internet", "url": "https://kevincox.ca/2024/08/16/private-internet/", "published_at": "2024-08-16T23:55:00+00:00" }, { "id": "01a0bb5b-b01f-7297-a938-98407f284fda", "title": "Rich Timestamp Sharing in Instant Messaging", "url": "https://kevincox.ca/2024/07/05/time-sharing-in-im/", "published_at": "2024-07-05T19:55:00+00:00" }, { "id": "01a0bb5b-b01f-7297-a938-98407f65bfe1", "title": "Announcing git bisect-find", "url": "https://kevincox.ca/2024/04/19/git-bisect-find/", "published_at": "2024-04-19T17:50:00+00:00" }, { "id": "01a0bb5b-b01f-7297-a938-9840801cd993", "title": "Goodbye Plato", "url": "https://kevincox.ca/2024/04/13/goodbye-plato/", "published_at": "2024-04-13T16:30:00+00:00" }, { "id": "01a0bb5b-b01f-7297-a938-984081174a6d", "title": "My Favourite Feeds", "url": "https://kevincox.ca/2024/02/29/favourite-feeds/", "published_at": "2024-02-29T23:10:00+00:00" }, { "id": "01a0bb63-b930-7137-acca-141ba974e0c5", "title": "Running a Terraria Dedicated Server on NixOS", "url": "https://kevincox.ca/2024/02/19/terraria-server-nixos/", "published_at": "2024-02-19T17:05:00+00:00" }, { "id": "01a0bb63-b930-7137-acca-141ba9e8246b", "title": "AI Stole Our Jobs", "url": "https://kevincox.ca/2024/02/17/ai-stole-our-jobs/", "published_at": "2024-02-17T19:35:00+00:00" }, { "id": "01a0bb63-b930-7137-acca-141baa660f11", "title": "How to Highlight Thousands Groups of Large Numbers in Vim", "url": "https://kevincox.ca/2023/09/27/vim-thousands-highlight/", "published_at": "2023-09-27T21:50:00+00:00" }, { "id": "01a0bb63-b930-7137-acca-141bab353fa9", "title": "Ricochet Robots Solver", "url": "https://kevincox.ca/2023/09/02/ricochet-robots-solver/", "published_at": "2023-09-02T18:00:00+00:00" }, { "id": "01a0bb69-c08e-72af-99df-bdb82c8becc5", "title": "Web Environment Integrity API", "url": "https://kevincox.ca/2023/07/26/web-environment-integrity-api/", "published_at": "2023-07-26T22:20:00+00:00" }, { "id": "01a0bb69-c08e-72af-99df-bdb82cec56b1", "title": "Decentralized vs. Federated", "url": "https://kevincox.ca/2023/07/20/decentralized-vs-federated/", "published_at": "2023-07-20T22:00:00+00:00" }, { "id": "01a0bb69-c08e-72af-99df-bdb82dd47ace", "title": "TypeScript Footgun — Unconstrained Generics", "url": "https://kevincox.ca/2023/07/17/typescript-unconstrained-generic/", "published_at": "2023-07-17T15:50:00+00:00" }, { "id": "01a0bb69-c08e-72af-99df-bdb82e9a2a45", "title": "Deploying Static Sites with statit", "url": "https://kevincox.ca/2023/07/12/statit-static-site-deploy/", "published_at": "2023-07-12T23:40:00+00:00" }, { "id": "01a0bb6d-d7e3-73c8-8ced-7ed676a640d0", "title": "A Decade of RSS Via Email", "url": "https://kevincox.ca/2023/06/27/decade-of-rss-via-email/", "published_at": "2023-06-27T15:15:00+00:00" }, { "id": "01a0bb6d-d7e4-73b3-b9f8-54bae463d5b6", "title": "Poster Printing with Inkscape", "url": "https://kevincox.ca/2023/06/25/inkscape-poster-printing/", "published_at": "2023-06-26T00:45:00+00:00" }, { "id": "01a0bb6d-d7e4-73b3-b9f8-54bae4fbbf93", "title": "Attempting to use bcachefs", "url": "https://kevincox.ca/2023/06/10/bcachefs-attempt/", "published_at": "2023-06-10T20:25:00+00:00" }, { "id": "01a0bb6d-d7e4-73b3-b9f8-54bae5858c43", "title": "The Ethics of Locked Hardware", "url": "https://kevincox.ca/2023/05/14/ethics-of-locked-hardware/", "published_at": "2023-05-14T11:50:00+00:00" }, { "id": "01a0bb71-9b6b-73e3-b03e-36a50b781be4", "title": "Default to Less Than Quadratic", "url": "https://kevincox.ca/2023/05/09/less-than-quadratic/", "published_at": "2023-05-09T21:50:00+00:00" }, { "id": "01a0bb71-9b6b-73e3-b03e-36a50c05b0b7", "title": "You Are Still the Product", "url": "https://kevincox.ca/2023/04/25/youre-still-the-product/", "published_at": "2023-04-25T21:05:00+00:00" }, { "id": "01a0bb71-9b6b-73e3-b03e-36a50c781267", "title": "Should Links Open in the Same Tab or a New One?", "url": "https://kevincox.ca/2023/04/24/browser-link-open-newwindow/", "published_at": "2023-04-24T22:30:00+00:00" }, { "id": "01a0bb71-9b6b-73e3-b03e-36a50d161371", "title": "Lying to TypeScript for Fun and Profit", "url": "https://kevincox.ca/2023/03/21/lying-to-typescript/", "published_at": "2023-03-21T21:10:00+00:00" }, { "id": "01a0bb75-0aee-716f-a819-c4a9b30cfa7d", "title": "Use a Password Manager", "url": "https://kevincox.ca/2023/01/11/use-a-password-manager/", "published_at": "2023-01-11T16:15:00+00:00" }, { "id": "01a0bb75-0aee-716f-a819-c4a9b359b58e", "title": "Left-to-Right UX", "url": "https://kevincox.ca/2022/12/28/left-to-right-ux/", "published_at": "2022-12-28T16:55:00+00:00" }, { "id": "01a0bb75-0aee-716f-a819-c4a9b35bf282", "title": "Nested Encoding Efficiency", "url": "https://kevincox.ca/2022/12/26/nested-encoding-efficency/", "published_at": "2022-12-26T18:50:00+00:00" }, { "id": "01a0bb75-0aee-716f-a819-c4a9b42a40a5", "title": "Mirroring a Website with Wget", "url": "https://kevincox.ca/2022/12/21/wget-mirror/", "published_at": "2022-12-21T19:05:00+00:00" }, { "id": "01a0bb78-404e-72a6-8f62-0270c8d86556", "title": "Running a Valheim Dedicated Server on NixOS v2", "url": "https://kevincox.ca/2022/12/09/valheim-server-nixos-v2/", "published_at": "2022-12-09T22:10:00+00:00" }, { "id": "01a0bb78-4051-71d7-8cf5-370d8c4271ad", "title": "Decentralized Applications via the Web Push API", "url": "https://kevincox.ca/2022/11/02/decentralized-via-webpush/", "published_at": "2022-11-02T21:05:00+00:00" }, { "id": "01a0bb78-4051-71d7-8cf5-370d8c58a611", "title": "Signed Email Addresses", "url": "https://kevincox.ca/2022/07/07/signed-email-addresses/", "published_at": "2022-07-07T15:30:00+00:00" }, { "id": "01a0bb78-4051-71d7-8cf5-370d8c941ca3", "title": "The Missing Call-Assign Operator", "url": "https://kevincox.ca/2022/06/25/call-assign-operator/", "published_at": "2022-06-25T12:30:00+00:00" }, { "id": "01a0bb7b-983e-7226-9a00-d7bcf426e94b", "title": "Honeycomb.io Review", "url": "https://kevincox.ca/2022/06/22/honeycomb-io-review/", "published_at": "2022-06-22T16:05:00+00:00" }, { "id": "01a0bb7b-983e-7226-9a00-d7bcf4bd5272", "title": "My favourite small tools, scripts and aliases", "url": "https://kevincox.ca/2022/06/14/small-tools/", "published_at": "2022-06-14T14:45:00+00:00" }, { "id": "01a0bb7b-983e-7226-9a00-d7bcf4d1f3f7", "title": "Working Around Bugs", "url": "https://kevincox.ca/2022/06/01/working-around-bugs/", "published_at": "2022-06-01T15:25:00+00:00" }, { "id": "01a0bb7b-983e-7226-9a00-d7bcf5c988b0", "title": "Wrong by Default", "url": "https://kevincox.ca/2022/05/13/wrong-by-default/", "published_at": "2022-05-13T15:20:00+00:00" }, { "id": "01a0bb7f-8eb3-7291-aae7-70990da0f493", "title": "Google WebSub is DoSing Me", "url": "https://kevincox.ca/2022/05/08/google-websub-dos/", "published_at": "2022-05-08T11:56:00+00:00" }, { "id": "01a0bb7f-8eb3-7291-aae7-70990da1fd4d", "title": "RSS Feed Best Practices", "url": "https://kevincox.ca/2022/05/06/rss-feed-best-practices/", "published_at": "2022-05-06T23:01:00+00:00" }, { "id": "01a0bb7f-8eb3-7291-aae7-70990dde8ae9", "title": "Rust Can't Handle Some Lifetimes of Generic Closure Arguments", "url": "https://kevincox.ca/2022/04/16/rust-generic-closure-lifetimes/", "published_at": "2022-04-16T13:00:00+00:00" }, { "id": "01a0bb7f-8eb3-7291-aae7-70990e636265", "title": "Delinearized Rollouts", "url": "https://kevincox.ca/2022/04/15/delinearized-rollouts/", "published_at": "2022-04-15T18:26:00+00:00" }, { "id": "01a0bb8c-f2ce-7124-a0f8-bdf6a16521d0", "title": "Maybe Passwords are the Future", "url": "https://kevincox.ca/2022/04/07/passwords/", "published_at": "2022-04-07T15:25:00+00:00" }, { "id": "01a0bb8c-f2ce-7124-a0f8-bdf6a167a731", "title": "Submitting Changes", "url": "https://kevincox.ca/2022/04/05/submitting-changes/", "published_at": "2022-04-05T16:55:00+00:00" }, { "id": "01a0bb8c-f2ce-7124-a0f8-bdf6a1cececa", "title": "Multi-Version Rollouts", "url": "https://kevincox.ca/2022/03/18/multi-version-rollout/", "published_at": "2022-03-18T15:15:00+00:00" }, { "id": "01a0bb8c-f2ce-7124-a0f8-bdf6a1d95bcc", "title": "Perfect Constant Vigilance", "url": "https://kevincox.ca/2022/03/12/perfect-constant-vigilance/", "published_at": "2022-03-12T14:21:00+00:00" }, { "id": "01a0bb90-26e8-70de-9353-118587ec6f73", "title": "My User Scripts", "url": "https://kevincox.ca/2022/03/05/user-scripts/", "published_at": "2022-03-06T01:40:00+00:00" }, { "id": "01a0bb90-26e8-70de-9353-118588ad27f6", "title": "Dictionary Compression", "url": "https://kevincox.ca/2022/03/01/dictionary-compression/", "published_at": "2022-03-01T16:55:00+00:00" }, { "id": "01a0bb90-26e8-70de-9353-1185899c8585", "title": "Cloudflare's Weird Age Header.", "url": "https://kevincox.ca/2022/02/18/cloudflare-age-header/", "published_at": "2022-02-18T22:00:00+00:00" }, { "id": "01a0bb90-26e8-70de-9353-11858a36de47", "title": "Escape Everything", "url": "https://kevincox.ca/2022/02/08/escape-everything/", "published_at": "2022-02-09T00:09:00+00:00" }, { "id": "01a0bb9c-e0ce-710c-a67f-2424ca8548f9", "title": "Remove Firefox Minimum Width", "url": "https://kevincox.ca/2022/01/21/firefox-min-width/", "published_at": "2022-01-21T21:28:00+00:00" }, { "id": "01a0bb9c-e0ce-710c-a67f-2424caa08e7b", "title": "Typed Config Languages", "url": "https://kevincox.ca/2022/01/19/typed-config-languages/", "published_at": "2022-01-19T17:00:00+00:00" }, { "id": "01a0bb9c-e0ce-710c-a67f-2424cab5e7ce", "title": "Predictable UX", "url": "https://kevincox.ca/2022/01/18/predictable-ux/", "published_at": "2022-01-18T16:20:00+00:00" }, { "id": "01a0bb9c-e0ce-710c-a67f-2424cb7487a9", "title": "Pinata Cleaning", "url": "https://kevincox.ca/2022/01/09/pinata-cleaning/", "published_at": "2022-01-09T13:04:00+00:00" }, { "id": "01a0bba2-c5f0-715b-83c3-237392a72628", "title": "Ice Golf", "url": "https://kevincox.ca/2022/01/08/ice-golf/", "published_at": "2022-01-09T01:30:00+00:00" }, { "id": "01a0bba2-c5f0-715b-83c3-237393a275b9", "title": "Nix Build Caching Inside Docker Containers", "url": "https://kevincox.ca/2022/01/02/nix-in-docker-caching/", "published_at": "2022-01-02T17:03:00+00:00" }, { "id": "01a0bba2-c5f0-715b-83c3-237393d4980e", "title": "Rocket Review", "url": "https://kevincox.ca/2022/01/01/rocket-review/", "published_at": "2022-01-01T14:28:00+00:00" }, { "id": "01a0bba2-c5f0-715b-83c3-237394699655", "title": "YouTube's Wonky WebSub", "url": "https://kevincox.ca/2021/12/16/youtube-websub/", "published_at": "2021-12-16T17:16:00+00:00" }, { "id": "01a0bba8-369e-7026-a3f6-bd1be10d97e1", "title": "Problems with Cloudflare Bot Blocking", "url": "https://kevincox.ca/2021/12/07/cloudflare-bot-block-failures/", "published_at": "2021-12-07T15:01:00+00:00" }, { "id": "01a0bba8-369e-7026-a3f6-bd1be15664fa", "title": "Announcing FeedMail", "url": "https://kevincox.ca/2021/11/01/announcing-feedmail/", "published_at": "2021-11-02T00:45:00+00:00" }, { "id": "01a0bba8-369e-7026-a3f6-bd1be228cef3", "title": "You Don't Want Atomic Deploys", "url": "https://kevincox.ca/2021/08/24/atomic-deploys/", "published_at": "2021-08-24T17:00:00+00:00" }, { "id": "01a0bba8-369e-7026-a3f6-bd1be3113483", "title": "My vision of Nixpkgs CI.", "url": "https://kevincox.ca/2021/08/21/nixpkgs-ci/", "published_at": "2021-08-22T01:25:00+00:00" }, { "id": "01a0bbad-3a96-7074-b1e2-88e52ac4845c", "title": "Things I Hate #2 — Fake Links", "url": "https://kevincox.ca/2021/08/18/fake-links/", "published_at": "2021-08-19T00:35:00+00:00" }, { "id": "01a0bbad-3a96-7074-b1e2-88e52b7ebab0", "title": "Proposal for Chrome and Content Modes in HTML", "url": "https://kevincox.ca/2021/07/14/chrome-and-content-modes-in-html/", "published_at": "2021-07-14T21:18:00+00:00" }, { "id": "01a0bbad-3a96-7074-b1e2-88e52b8950fa", "title": "It isn't my fault if you think this site is ugly.", "url": "https://kevincox.ca/2021/07/13/not-my-fault-if-this-is-ugly/", "published_at": "2021-07-13T21:08:00+00:00" }, { "id": "01a0bbad-3a96-7074-b1e2-88e52c09505a", "title": "Respecting Your Users' Fonts", "url": "https://kevincox.ca/2021/06/23/respect-user-fonts/", "published_at": "2021-06-23T12:58:00+00:00" }, { "id": "01a0bbb2-39d8-70ff-9eed-b64913d47c3f", "title": "The Legal Value of Time", "url": "https://kevincox.ca/2021/06/08/value-of-time/", "published_at": "2021-06-08T21:04:00+00:00" }, { "id": "01a0bbb2-39d8-70ff-9eed-b649147581f9", "title": "The Impossibility of Perfectly Caching HTTP Range Requests", "url": "https://kevincox.ca/2021/06/04/http-range-caching/", "published_at": "2021-06-04T22:03:00+00:00" }, { "id": "01a0bbb2-39d8-70ff-9eed-b64915589648", "title": "Firefox Proton Theme Tweaks", "url": "https://kevincox.ca/2021/06/03/firefox-proton-tweaks/", "published_at": "2021-06-03T15:37:00+00:00" }, { "id": "01a0bbb2-39d8-70ff-9eed-b64915ed5ee2", "title": "Installing a New Workstation with NixOS", "url": "https://kevincox.ca/2021/05/06/workstation-install-with-nixos/", "published_at": "2021-05-07T00:27:00+00:00" }, { "id": "01a0bbb7-bca8-71b9-ab19-48d58e89cd6e", "title": "I Miss Referer", "url": "https://kevincox.ca/2021/04/25/rip-referer/", "published_at": "2021-04-25T22:42:00+00:00" }, { "id": "01a0bbb7-bca8-71b9-ab19-48d58f44c148", "title": "Announcing watchlog", "url": "https://kevincox.ca/2021/04/21/announcing-watchlog/", "published_at": "2021-04-21T20:56:00+00:00" }, { "id": "01a0bbb7-bca8-71b9-ab19-48d590319627", "title": "Matrix Proposals need to be Encryption-First", "url": "https://kevincox.ca/2021/04/17/encryption-first-mscs/", "published_at": "2021-04-17T19:36:00+00:00" }, { "id": "01a0bbb7-bca8-71b9-ab19-48d5909d5d0e", "title": "My Ideal Service", "url": "https://kevincox.ca/2021/04/15/my-ideal-service/", "published_at": "2021-04-15T20:58:00+00:00" }, { "id": "01a0bbbc-3fc1-73f7-9487-6d663382cd60", "title": "Per-User Rate Limiting", "url": "https://kevincox.ca/2021/04/14/per-user-rate-limiting/", "published_at": "2021-04-14T20:35:00+00:00" }, { "id": "01a0bbbc-3fc1-73f7-9487-6d663473d3cb", "title": "Good Names", "url": "https://kevincox.ca/2021/03/23/good-names/", "published_at": "2021-03-23T10:44:00+00:00" }, { "id": "01a0bbbc-3fc1-73f7-9487-6d6634c7a590", "title": "My ZSH Prompt", "url": "https://kevincox.ca/2021/03/19/my-zsh-prompt/", "published_at": "2021-03-19T21:54:00+00:00" }, { "id": "01a0bbbc-3fc1-73f7-9487-6d66350c27ce", "title": "Accessing Query Window in Sumo Logic", "url": "https://kevincox.ca/2021/03/10/sumologic-query-window/", "published_at": "2021-03-10T23:25:00+00:00" }, { "id": "01a0bbc0-b225-7371-a055-07e443182f57", "title": "Backups with IPFS", "url": "https://kevincox.ca/2021/02/24/using-ipfs-for-backups/", "published_at": "2021-02-24T12:50:00+00:00" }, { "id": "01a0bbc0-b225-7371-a055-07e4434670eb", "title": "Running a Valheim Dedicated Server on NixOS", "url": "https://kevincox.ca/2021/02/16/valheim-dedicated-server-nixos/", "published_at": "2021-02-16T23:30:00+00:00" }, { "id": "01a0bbc0-b225-7371-a055-07e44429a261", "title": "Thoughts on Coil", "url": "https://kevincox.ca/2021/02/10/thoughts-on-coil/", "published_at": "2021-02-10T12:30:00+00:00" }, { "id": "01a0bbc0-b225-7371-a055-07e444b0e553", "title": "Uber Support Sucks, a Horror Story", "url": "https://kevincox.ca/2021/02/09/uber-support-sucks/", "published_at": "2021-02-10T00:32:00+00:00" }, { "id": "01a0bbc5-10d8-71ba-8d7d-af53e4bb9362", "title": "My Ideal Window Manager", "url": "https://kevincox.ca/2021/02/06/my-ideal-window-manager/", "published_at": "2021-02-06T16:30:00+00:00" }, { "id": "01a0bbc5-10d8-71ba-8d7d-af53e52432d7", "title": "Tabs Were a Mistake", "url": "https://kevincox.ca/2021/01/11/tabs-were-a-mistake/", "published_at": "2021-01-11T22:44:00+00:00" }, { "id": "01a0bbc5-10d8-71ba-8d7d-af53e60bde1c", "title": "Pretty Good Extra Utilities Solar Generator Controller", "url": "https://kevincox.ca/2020/12/27/solar-generator-controller/", "published_at": "2020-12-27T13:05:00+00:00" }, { "id": "01a0bbc5-10d8-71ba-8d7d-af53e6346905", "title": "NixOS Config Switching", "url": "https://kevincox.ca/2020/12/04/nixos-config-switching/", "published_at": "2020-12-04T22:05:00+00:00" }, { "id": "01a0bbcc-1272-72ee-9c66-cadf3892a8dd", "title": "Gridfinder Implementation", "url": "https://kevincox.ca/2020/11/06/gridfinder/", "published_at": "2020-11-06T23:30:00+00:00" }, { "id": "01a0bbcc-1272-72ee-9c66-cadf3962e245", "title": "Removing a Service Worker", "url": "https://kevincox.ca/2020/11/03/removing-a-service-worker/", "published_at": "2020-11-03T12:30:00+00:00" }, { "id": "01a0bbcc-1272-72ee-9c66-cadf39ecc8e2", "title": "State of IPFS Websites", "url": "https://kevincox.ca/2020/10/30/state-of-ipfs-websites/", "published_at": "2020-10-30T23:16:00+00:00" }, { "id": "01a0bbcc-1272-72ee-9c66-cadf3a6ba825", "title": "IM Needs an Inbox", "url": "https://kevincox.ca/2020/09/18/im-needs-an-inbox/", "published_at": "2020-09-18T22:47:00+00:00" }, { "id": "01a0bbd0-e9b5-702a-a0fd-01c550137b70", "title": "Terraform Debug Printing", "url": "https://kevincox.ca/2020/09/09/terraform-debug/", "published_at": "2020-09-09T21:38:00+00:00" }, { "id": "01a0bbd0-e9b5-702a-a0fd-01c550f4fb40", "title": "Switching to NixOS on my Desktop", "url": "https://kevincox.ca/2020/09/06/switching-to-desktop-nixos/", "published_at": "2020-09-06T13:20:00+00:00" }, { "id": "01a0bbd0-e9b5-702a-a0fd-01c551500def", "title": "Acronyms Considered Harmful", "url": "https://kevincox.ca/2020/09/04/acronyms-considered-harmful/", "published_at": "2020-09-04T22:25:00+00:00" }, { "id": "01a0bbd0-e9b5-702a-a0fd-01c551d31306", "title": "How to Keep Your Master Branch Green with Git", "url": "https://kevincox.ca/2020/08/15/git-green-ci/", "published_at": "2020-08-15T21:58:00+00:00" }, { "id": "01a0bbd4-e1e2-708d-86fd-101993d8cccf", "title": "Multidimensional Service Configuration", "url": "https://kevincox.ca/2020/07/31/multidimensional-configuration/", "published_at": "2020-07-31T23:55:00+00:00" } ] posts Claim your blog
Back to Kevin Cox - All Articles
Blog · corpus.blog/blogs/kevincox.ca/posts

Kevin Cox - All Articles

kevincox.ca

2026

2025

2024

2023

2022

2021

2020