41554 blogs · [ { "id": "01a0d49f-58a7-72c6-ad5f-c6a2858b0b0d", "title": "Linux programs look at things in /proc more than you'd expect", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/ProcGetsUsedByPrograms", "published_at": "2026-09-24T02:13:21+00:00" }, { "id": "01a0d49f-58a8-73db-bef8-e0d9b74cf423", "title": "Ubuntu 26.04 has made the Apache systemd service unit fairly restricted", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/Ubuntu2604ApacheRestrictions", "published_at": "2026-09-23T02:32:01+00:00" }, { "id": "01a0d49f-58a8-73db-bef8-e0d9b8412d89", "title": "At a university, you have to accept that people are going to do stuff", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/UniversityPeopleDoStuff", "published_at": "2026-09-22T02:23:25+00:00" }, { "id": "01a0d49f-58a8-73db-bef8-e0d9b8f245d2", "title": "Python settings for Flycheck in GNU Emacs (as of September 2026)", "url": "https://utcc.utoronto.ca/~cks/space/blog/python/PythonEmacsFlycheckSettings", "published_at": "2026-09-21T02:50:20+00:00" }, { "id": "01a0d49f-58a8-73db-bef8-e0d9b97a129c", "title": "I'm eventually going to want a \"casual\" browser passkey system", "url": "https://utcc.utoronto.ca/~cks/space/blog/web/BrowserCasualPasskeyDesire", "published_at": "2026-09-20T01:48:45+00:00" }, { "id": "01a0d49f-58a8-73db-bef8-e0d9b97ee558", "title": "Exim's feature of \"tainted\" strings is a heuristic", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/EximTaintingIsAHeuristic", "published_at": "2026-09-19T02:37:34+00:00" }, { "id": "01a0d49f-58a8-73db-bef8-e0d9ba617383", "title": "Having an Exim test plan for a server saved me", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/EximTestPlanSavedMe", "published_at": "2026-09-18T03:09:04+00:00" }, { "id": "01a0d49f-58a8-73db-bef8-e0d9bb2cb7f2", "title": "Serious editors are a commitment (at least for me)", "url": "https://utcc.utoronto.ca/~cks/space/blog/tech/EditorsAreACommitment", "published_at": "2026-09-17T01:26:10+00:00" }, { "id": "01a0d49f-58a8-73db-bef8-e0d9bb6035cf", "title": "Think about your goals and threat models for MFA authentication", "url": "https://utcc.utoronto.ca/~cks/space/blog/tech/MFAConsiderGoalsAndThreatModels", "published_at": "2026-09-16T01:54:13+00:00" }, { "id": "01a0d49f-58a8-73db-bef8-e0d9bba0c4e0", "title": "Some feed readers don't ever react to permanent HTTP redirections", "url": "https://utcc.utoronto.ca/~cks/space/blog/web/FeedReadersAndRedirectsII", "published_at": "2026-09-15T01:45:32+00:00" }, { "id": "01a0d49f-58a8-73db-bef8-e0d9bc339c3f", "title": "University MFA authentication has some unusual challenges", "url": "https://utcc.utoronto.ca/~cks/space/blog/tech/UniversityMFAUnusualChallenges", "published_at": "2026-09-14T02:07:47+00:00" }, { "id": "01a0d49f-58a8-73db-bef8-e0d9bc372238", "title": "One possible future for websites is less features", "url": "https://utcc.utoronto.ca/~cks/space/blog/web/OneWebFutureLessFeatures", "published_at": "2026-09-13T02:41:59+00:00" }, { "id": "01a0d49f-58a8-73db-bef8-e0d9bcfbfa2c", "title": "Notes on debugging standard and third-party Emacs code", "url": "https://utcc.utoronto.ca/~cks/space/blog/programming/EmacsDebuggingStandardBits", "published_at": "2026-09-12T02:42:09+00:00" }, { "id": "01a0d49f-58a8-73db-bef8-e0d9bd879bdb", "title": "The many load averages of Unix(es) in 2026", "url": "https://utcc.utoronto.ca/~cks/space/blog/unix/ManyLoadAveragesOfUnixII", "published_at": "2026-09-11T02:44:09+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b97a9a3e0e", "title": "Some (mostly historical) issues with the Unix load average", "url": "https://utcc.utoronto.ca/~cks/space/blog/unix/LoadAverageHistoricalIssues", "published_at": "2026-09-10T03:08:11+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b97ad5a149", "title": "Polkit insists on there always being administrative users", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/PolkitAlwaysAnAdmin", "published_at": "2026-09-09T03:45:47+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b97b619217", "title": "Always remember to restart daemons and programs after changes", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/RestartAfterChangesLesson", "published_at": "2026-09-08T02:07:05+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b97bb2cc7d", "title": "Thinking about models: authorization versus capabilities", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/AuthorizationVsCapabilities", "published_at": "2026-09-07T03:28:00+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b97c865dc3", "title": "The prospect for language independent tooling for making code changes", "url": "https://utcc.utoronto.ca/~cks/space/blog/programming/LanguageIndependentCodeChanges", "published_at": "2026-09-06T02:34:21+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b97d5384b4", "title": "Our authentication versus authorization problem", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/OurAuthVsAccessProblem", "published_at": "2026-09-05T03:33:56+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b97d849697", "title": "Sorting out a DNF \"transaction failed\" during my upgrade to Fedora 44", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/Fedora44DNFTransactionFailed", "published_at": "2026-09-04T03:09:12+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b97db3c388", "title": "Status reports and indicators are untrustworthy, UPS battery edition", "url": "https://utcc.utoronto.ca/~cks/space/blog/tech/UPSBatteryReportingIssue", "published_at": "2026-09-03T03:16:09+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b97e5e8ec1", "title": "We're no longer using Linux's strict memory overcommit mode", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/StrictOvercommitNoLongerUsing", "published_at": "2026-09-02T02:08:21+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b97ed15892", "title": "Getting LSP servers and other tools to work in venvs in GNU Emacs", "url": "https://utcc.utoronto.ca/~cks/space/blog/python/VenvsAndToolsInEmacs", "published_at": "2026-09-01T03:07:17+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b97f10ce72", "title": "There's a difference between a technology being ineffective and being uneconomical", "url": "https://utcc.utoronto.ca/~cks/space/blog/tech/UneconomicalVsNotWorking", "published_at": "2026-08-31T02:33:17+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b97fcfbbbe", "title": "Our slow move toward boring (server) host names", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/ChoosingBoringHostNames", "published_at": "2026-08-30T01:50:26+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b97fed88b9", "title": "Blocking SSH logins with PAM (at least on Linux)", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/SSHBlockLoginsWithPAM", "published_at": "2026-08-29T03:02:29+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98082635e", "title": "Using Polkit to prevent people from doing 'loginctl enable-linger'", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/PolkitDisableLoginctlLinger", "published_at": "2026-08-28T02:49:42+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9811b494b", "title": "A surprise with systemd user service units and special shells", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/SystemdUserServicesAndShell", "published_at": "2026-08-27T03:46:08+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b981fd8dd8", "title": "Making a bytes/Unicode confusion in email parsing in Python", "url": "https://utcc.utoronto.ca/~cks/space/blog/python/EmailParsingUnicodeFumble", "published_at": "2026-08-26T03:32:50+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9820e65dd", "title": "Considering how much RAM system.slice and the kernel need", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/SystemMemoryNeedQuestion", "published_at": "2026-08-25T03:23:12+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9823b5956", "title": "I should write more shell scripts than I do", "url": "https://utcc.utoronto.ca/~cks/space/blog/unix/WriteMoreShellScripts", "published_at": "2026-08-24T02:46:03+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b982d5fe55", "title": "Some notes on taming ruff (and mypy) so they're useful for me", "url": "https://utcc.utoronto.ca/~cks/space/blog/python/TamingRuffAndMypy", "published_at": "2026-08-23T01:48:31+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9834a6500", "title": "I've become more optimistic about my someday future on Wayland", "url": "https://utcc.utoronto.ca/~cks/space/blog/unix/WaylandOptionsOptimism", "published_at": "2026-08-22T02:39:00+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b983d4adeb", "title": "We should re-check our local settings every so often", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/RecheckSettingsEverySoOften", "published_at": "2026-08-21T02:49:09+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b984bef4ff", "title": "Why one of our systems had very slow systemd session starts", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/SystemdSlowSessionStartProblemII", "published_at": "2026-08-20T00:58:40+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9852d5efb", "title": "A systemd mystery with a very slow session start", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/SystemdSlowSessionStartProblem", "published_at": "2026-08-19T03:04:31+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9859508df", "title": "Some notes on rectangle regions in GNU Emacs", "url": "https://utcc.utoronto.ca/~cks/space/blog/programming/EmacsRectangleRegionNotes", "published_at": "2026-08-18T03:02:44+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b985c1db74", "title": "Some thoughts on (not) using GNU Emacs' Tramp remote editing system", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/EmacsTrampSomeThoughts", "published_at": "2026-08-17T03:48:43+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98636747a", "title": "Stopping a systemd service when a filesystem is unmounted", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/SystemdStopOnFSUnmount", "published_at": "2026-08-16T02:05:00+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b986978387", "title": "Grafana dashboards are a marvel of the modern web environment", "url": "https://utcc.utoronto.ca/~cks/space/blog/web/GrafanaModernWebMarvel", "published_at": "2026-08-15T02:45:35+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b986fa4a27", "title": "It helps to keep track of and investigate your clever ideas", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/ActuallyInvestigateIdeas", "published_at": "2026-08-14T02:57:12+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98721f390", "title": "Revisiting Flymake and Flycheck in GNU Emacs (as of Flycheck v39)", "url": "https://utcc.utoronto.ca/~cks/space/blog/programming/EmacsFlymakeFlycheckII", "published_at": "2026-08-13T02:45:59+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b987b0f2e7", "title": "Modern (x86) firmware can be really slow to boot, which can be painful", "url": "https://utcc.utoronto.ca/~cks/space/blog/tech/SlowFirmwareBootPainful", "published_at": "2026-08-12T03:09:07+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b988878cd1", "title": "URLs aren't strings, and my recent encounter with this", "url": "https://utcc.utoronto.ca/~cks/space/blog/web/URLsAreNotStringsMyCase", "published_at": "2026-08-11T03:21:03+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98895a167", "title": "Where I put default values for options in Python's argparse and why", "url": "https://utcc.utoronto.ca/~cks/space/blog/python/ArgparseDefaultsWhere", "published_at": "2026-08-10T03:02:09+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b988e85a9b", "title": "Sometimes we do clean up network oddities", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/RealNetworkEvolutionII", "published_at": "2026-08-09T02:08:31+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9895e6f61", "title": "An irritating incompatible change in Python 3.14's argparse", "url": "https://utcc.utoronto.ca/~cks/space/blog/python/ArgparseHelpValidationChange", "published_at": "2026-08-08T02:50:09+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b989bc8223", "title": "Some ways to navigate through 'git blame' over time in GNU Emacs", "url": "https://utcc.utoronto.ca/~cks/space/blog/programming/EmacsGitBlameOverTime", "published_at": "2026-08-07T02:44:49+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98a124f09", "title": "Looking at the memory map of a Go 1.27 program on Linux", "url": "https://utcc.utoronto.ca/~cks/space/blog/programming/GoProgramMemoryUseII", "published_at": "2026-08-06T02:46:15+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98a28dbbe", "title": "Where a Linux kernel memory allocation error comes from", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/KernelNotEnoughMemoryError", "published_at": "2026-08-05T02:27:19+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98a479507", "title": "What 'sh -x' mostly doesn't tell you about a shell script", "url": "https://utcc.utoronto.ca/~cks/space/blog/programming/ShXWhatYouMiss", "published_at": "2026-08-04T02:08:46+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98a557416", "title": "Bug reports are hard, minor details matter edition", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/BugReportsMinorDetailsCanMatter", "published_at": "2026-08-03T03:26:49+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98a68d5f2", "title": "Some reasons why my phone's alarm clock is so good", "url": "https://utcc.utoronto.ca/~cks/space/blog/tech/SmartphoneAlarmClockWhyGood", "published_at": "2026-08-02T03:27:46+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98b4660c3", "title": "The Ubuntu 26.04 server installer and reusing existing data filesystems", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/Ubuntu2604InstallerExistingDisks", "published_at": "2026-08-01T03:22:05+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98c1541bd", "title": "My misunderstanding about tabs in Python 3", "url": "https://utcc.utoronto.ca/~cks/space/blog/python/Python3TabsMisunderstanding", "published_at": "2026-07-31T02:30:34+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98ca19a79", "title": "Solving my problem with the Emacs Lisp byte compilation checker", "url": "https://utcc.utoronto.ca/~cks/space/blog/programming/EmacsLispCheckerAndPackageMacros", "published_at": "2026-07-30T03:00:17+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98d5a41a0", "title": "Getting access to the /tmp of a systemd service with PrivateTmp=yes", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/SystemdPrivateTmpWhere", "published_at": "2026-07-29T03:29:51+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98ddf8255", "title": "Trying to stress Apache to 10,000 connections (with no answer yet)", "url": "https://utcc.utoronto.ca/~cks/space/blog/web/Apache10KNoAnswerYet", "published_at": "2026-07-28T03:07:48+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98e0b8e06", "title": "Getting a minimal environment for a third party GNU Emacs package", "url": "https://utcc.utoronto.ca/~cks/space/blog/programming/EmacsMinimalEnvForPackage", "published_at": "2026-07-27T03:25:04+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98ee327de", "title": "An unfortunate limitation of the Apache server status page", "url": "https://utcc.utoronto.ca/~cks/space/blog/web/ApacheServerStatusLimitation", "published_at": "2026-07-26T00:42:46+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98efa15f4", "title": "How you wind up with switches above your office's false ceiling", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/HowYouGetCeilingSwitchs", "published_at": "2026-07-25T03:02:44+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b98f73f3c7", "title": "Maybe assigning TCP connection to Linux traffic control 'flows'", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/TcAssignFlowsMaybe", "published_at": "2026-07-24T03:14:15+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99036a77f", "title": "The story of how we (eventually) found our missing firewall rule", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/FindingOurMissingFirewallRule", "published_at": "2026-07-23T01:36:34+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99101e603", "title": "Making sense of diskless workstations through two models of them", "url": "https://utcc.utoronto.ca/~cks/space/blog/tech/DisklessWorkstationsTwoModels", "published_at": "2026-07-22T02:20:45+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b991c61272", "title": "Ubuntu 26.04 has broken shutdown announcements and wall doesn't work", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/Ubuntu2604ShutdownAndWall", "published_at": "2026-07-21T03:28:49+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b991d03c8f", "title": "Changes in how something behaves are a signal (but can be hard to notice)", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/SurpriseChangesAreASignal", "published_at": "2026-07-20T03:11:51+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b992563381", "title": "The Rust coreutils (uutils) are sticky in Ubuntu 26.04 LTS", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/Ubuntu2604BuildEssentialAndUutils", "published_at": "2026-07-19T02:08:48+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b992b0cfc2", "title": "How my desktops wound up with multiple D-Bus user session instances", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/HowMyMultipleDBusInstances", "published_at": "2026-07-18T02:02:00+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b993681b60", "title": "Argc and argv in early Research Unix", "url": "https://utcc.utoronto.ca/~cks/space/blog/unix/EarlyUnixArgcAndArgv", "published_at": "2026-07-17T02:59:36+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9941a1037", "title": "The early Research Unix exec(2) argv size limit", "url": "https://utcc.utoronto.ca/~cks/space/blog/unix/EarlyUnixExecArgvSizeLimit", "published_at": "2026-07-16T02:47:55+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b994ba4f21", "title": "Systemd and your user D-Bus session bus", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/SystemdAndUserDBusSessionBus", "published_at": "2026-07-15T01:59:10+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b995437ac6", "title": "Prometheus 3.14's (likely) duration functions, especially step()", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/PrometheusDurationFunctions", "published_at": "2026-07-14T02:18:35+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b995b9b6c4", "title": "How early SunOS did diskless workstations before NFS", "url": "https://utcc.utoronto.ca/~cks/space/blog/solaris/SunOSDisklessWithoutNFS", "published_at": "2026-07-13T02:39:41+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99657ef22", "title": "Finding an outdated Git mirror host", "url": "https://utcc.utoronto.ca/~cks/space/blog/programming/GitFindingOutdatedMirrorHost", "published_at": "2026-07-11T23:27:41+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99756267b", "title": "A mistake I've made with the Apache IfModule directive", "url": "https://utcc.utoronto.ca/~cks/space/blog/web/ApacheIfModuleMistake", "published_at": "2026-07-11T02:15:00+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99801c9e2", "title": "An unusual way for your DHCP server to run out of dynamic IPs", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/DHCPServerAndScreamingHost", "published_at": "2026-07-10T03:00:59+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99864b646", "title": "BMCs and a surprising USB network device on your server", "url": "https://utcc.utoronto.ca/~cks/space/blog/tech/BMCsAndUSBEthernetDevices", "published_at": "2026-07-09T01:41:15+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9988da419", "title": "Notes on pulling from multiple upstream Git mirrors", "url": "https://utcc.utoronto.ca/~cks/space/blog/programming/GitPullingFromMirrors", "published_at": "2026-07-08T02:35:03+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b998c5e420", "title": "Our mixed building network wiring and its consequences", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/OurMixedBuildingWiring", "published_at": "2026-07-07T22:53:39+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b999737ac8", "title": "Using Linux tc to limit the outgoing bandwidth of a web server", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/TcLimitServiceBandwidth", "published_at": "2026-07-07T03:05:39+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99a057f48", "title": "Sometimes it actually is the network: a war story", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/SometimesItIsTheNetwork", "published_at": "2026-07-06T02:13:18+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99a73be82", "title": "What buffer size (OpenSSH) ssh seems to use for streaming output", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/OpenSSHStdoutIOSize", "published_at": "2026-07-04T23:27:08+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99a82808a", "title": "Go maps, hashes of map keys, and pointers: a little surprise", "url": "https://utcc.utoronto.ca/~cks/space/blog/programming/GoMapsHashesAndPointers", "published_at": "2026-07-04T02:01:44+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99b1eb4d3", "title": "Discovering rsync's -W option and our use for it", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/RsyncWOptionUse", "published_at": "2026-07-03T02:41:01+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99bebbbe7", "title": "I'm only interested in \"native\" installation systems", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/NativeInstallersOnly", "published_at": "2026-07-02T01:33:46+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99cc8fdba", "title": "Our long path from IPMI remote installs to network installs", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/IPMIToNetworkInstalls", "published_at": "2026-07-01T02:52:24+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99d82eb5a", "title": "As expected, using kexec to switch to a new Ubuntu kernel works", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/UbuntuKexecRestartWorks", "published_at": "2026-06-30T03:10:12+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99dcd9938", "title": "There's a plague of Googlebot impersonation going on (in June 2026)", "url": "https://utcc.utoronto.ca/~cks/space/blog/web/GooglebotImpersonatorPlague", "published_at": "2026-06-29T03:18:27+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99e3a6929", "title": "Go interfaces, reflection, and binary size", "url": "https://utcc.utoronto.ca/~cks/space/blog/programming/GoInterfacesReflectAndBinarySize", "published_at": "2026-06-28T02:16:31+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99eb335c2", "title": "How your Ubuntu 26.04 server boots with a software RAID array root filesystem", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/Ubuntu2604ServerSoftwareRaidBoot", "published_at": "2026-06-27T03:28:54+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99f6d6a06", "title": "You can't always trust a BMC's inventory of the server's hardware", "url": "https://utcc.utoronto.ca/~cks/space/blog/tech/BMCDontTrustHardwareInventory", "published_at": "2026-06-26T03:25:57+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99fc1781c", "title": "Some things on 'systemctl kexec' as compared to 'kexec -e'", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/SystemctlKexecVsKexec", "published_at": "2026-06-25T02:42:00+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99fd596ab", "title": "Two versions of a 'is SSH up on a machine' check", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/SshupTwoVersions", "published_at": "2026-06-24T02:18:14+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b99fda97d4", "title": "The quiet issue of lurking settings (and how it bit me)", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/LurkingSettings", "published_at": "2026-06-23T02:30:47+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9a0309b3c", "title": "Configuration is a liability, just like code", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/ConfigurationIsALiability", "published_at": "2026-06-22T03:08:03+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9a0f1784a", "title": "PyPy and Python 3 for us", "url": "https://utcc.utoronto.ca/~cks/space/blog/python/PyPyAndPython3ForUs", "published_at": "2026-06-21T03:13:32+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9a1050ae6", "title": "Limiting web server bandwidth the brute force way", "url": "https://utcc.utoronto.ca/~cks/space/blog/web/ServerBruteForceBandwidthLimit", "published_at": "2026-06-20T02:59:49+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9a1cf04d6", "title": "Some reasons why your server may not be doing a UEFI network boot", "url": "https://utcc.utoronto.ca/~cks/space/blog/sysadmin/WhyServerNotUEFINetworkBoot", "published_at": "2026-06-19T03:30:09+00:00" }, { "id": "01a08c5b-3cf0-706e-bddb-32b9a270dca0", "title": "How to correctly not wait for network carrier in Netplan", "url": "https://utcc.utoronto.ca/~cks/space/blog/linux/UbuntuNetplanWaitForCarrierII", "published_at": "2026-06-18T02:02:05+00:00" } ] posts Claim your blog
Back to Chris Siebenmann
Blog · corpus.blog/blogs/utcc.utoronto.ca/posts

Chris Siebenmann

utcc.utoronto.ca

2026