The Curious Engineer

All blogs / Misc

Chris's Wiki

utcc.utoronto.ca/~cks/space/blog

MiscLinux / UnixSoftware / engineering practiceDev tools / editors / IDEs

Posts
120 from 14 Jul 2026 to 7 Nov 2026
Posting
weekly (120 in the last year)
Kind
personal blog
Feed
https://utcc.utoronto.ca/~cks/space/blog/?atom

2026 120

  1. That Perl makes it easy to use hacks is a nice thing (and good)
  2. Some people (software) seems to ignore 'null MX' records
  3. My views on whether you should use Ubuntu 26.04
  4. Bug reports and voluntary versus involuntary usage of programs
  5. The Ubuntu 26.04 Rust sudo is not compatible with standard sudo
  6. One possible future for websites is gated communities
  7. How ATX power button based power off seems to work on desktop motherboards
  8. Being more selective about python-lsp-server plugins in my Emacs setup
  9. The discontents of Ubuntu 26.04's default to a tmpfs /tmp
  10. The Linux kernel not rebooting on some 'panics' can be handy
  11. My reflex of assuming our servers need ever-growing amounts of RAM
  12. Our current upgrade practices for our servers (as of late 2026)
  13. Hardware failures can be odd, LCD panel edition
  14. A rare use (for me) of sed's backslash regular expression replacement
  15. Free and open source programming is not the same as hobby programming
  16. DNS zone inconsistency allows weird client behavior to be legitimate
  17. Web servers and frameworks do things before application validation
  18. User CSS modifications can only go so far, Mastodon edition
  19. PoliciesAreCommunication
  20. ProcWhyAlternativesToo
  21. SpecificationsAndCompatibility
  22. SSOMakingItNotSingle
  23. ConsiderVerboseUsageMessages
  24. FedoraDKMSInitramfsProblem
  25. Ubuntu2604ResolvedWorksOkay
  26. ServerEnvRequirementsVaryALot
  27. LocalManpagesWhere
  28. Compiler bootstrapping depends on more than you might think
  29. LocalManpagesAndUsageMessages
  30. On modern hardware, who handles what bit of hardware state can be unclear
  31. Previous 10
  32. 2026/10/09
  33. What I use Eglot for in GNU Emacs and what good it is
  34. Forcing a direct kernel reboot is sometimes needed and recommended
  35. All practical general use firewalls are porous now for inbound traffic
  36. My small wish for terminal programs (and other programs)
  37. One possible future for websites is pervasive gatekeepers
  38. Nearly every Unix today has a terminal emulator in its kernel
  39. My eccentric setup is enabled in part by a lot of continuity
  40. More or less all modern electronic devices have a limited lifespan
  41. October
  42. Terminfo and terminal 'automatic margins' (and modern shells)
  43. An unexpected difference between terminal programs: backward line wrapping
  44. Our fileserver generations are a little bit complex
  45. Changing your (Unix) terminal appearance on a per-host basis
  46. Giving up on PyPy for my own use (at least for now)
  47. How Emacs does things: flyspell's way of tracking misspelled words
  48. Linux programs look at things in <code>/proc</code> more than you'd expect
  49. Ubuntu 26.04 has made the Apache systemd service unit fairly restricted
  50. At a university, you have to accept that people are going to do stuff
  51. Python settings for Flycheck in GNU Emacs (as of September 2026)
  52. I'm eventually going to want a "casual" browser passkey system
  53. Exim's feature of "tainted" strings is a heuristic
  54. Having an Exim test plan for a server saved me
  55. Serious editors are a commitment (at least for me)
  56. Think about your goals and threat models for MFA authentication
  57. Some feed readers don't ever react to permanent HTTP redirections
  58. University MFA authentication has some unusual challenges
  59. One possible future for websites is less features
  60. Notes on debugging standard and third-party Emacs code
  61. The many load averages of Unix(es) in 2026
  62. Some (mostly historical) issues with the Unix load average
  63. Polkit insists on there always being administrative users
  64. Always remember to restart daemons and programs after changes
  65. Thinking about models: authorization versus capabilities
  66. The prospect for language independent tooling for making code changes
  67. Our authentication versus authorization problem
  68. Sorting out a DNF "transaction failed" during my upgrade to Fedora 44
  69. Status reports and indicators are untrustworthy, UPS battery edition
  70. We're no longer using Linux's strict memory overcommit mode
  71. Getting LSP servers and other tools to work in venvs in GNU Emacs
  72. There's a difference between a technology being ineffective and being uneconomical
  73. Our slow move toward boring (server) host names
  74. Blocking SSH logins with PAM (at least on Linux)
  75. Using Polkit to prevent people from doing '<code>loginctl enable-linger</code>'
  76. A surprise with systemd user service units and special shells
  77. Making a bytes/Unicode confusion in email parsing in Python
  78. Considering how much RAM system.slice and the kernel need
  79. I should write more shell scripts than I do
  80. Some notes on taming ruff (and mypy) so they're useful for me
  81. I've become more optimistic about my someday future on Wayland
  82. We should re-check our local settings every so often
  83. Why one of our systems had very slow systemd session starts
  84. A systemd mystery with a very slow session start
  85. Some notes on rectangle regions in GNU Emacs
  86. Some thoughts on (not) using GNU Emacs' Tramp remote editing system
  87. Stopping a systemd service when a filesystem is unmounted
  88. Grafana dashboards are a marvel of the modern web environment
  89. It helps to keep track of and investigate your clever ideas
  90. Revisiting Flymake and Flycheck in GNU Emacs (as of Flycheck v39)
  91. Modern (x86) firmware can be really slow to boot, which can be painful
  92. URLs aren't strings, and my recent encounter with this
  93. Where I put default values for options in Python's argparse and why
  94. Sometimes we do clean up network oddities
  95. An irritating incompatible change in Python 3.14's <code>argparse</code>
  96. Some ways to navigate through 'git blame' over time in GNU Emacs
  97. Looking at the memory map of a Go 1.27 program on Linux
  98. Where a Linux kernel memory allocation error comes from
  99. What '<code>sh -x</code>' mostly doesn't tell you about a shell script
  100. Bug reports are hard, minor details matter edition
  101. Some reasons why my phone's alarm clock is so good
  102. The Ubuntu 26.04 server installer and reusing existing data filesystems
  103. My misunderstanding about tabs in Python 3
  104. Solving my problem with the Emacs Lisp byte compilation checker
  105. Getting access to the /tmp of a systemd service with <code>PrivateTmp=yes</code>
  106. Trying to stress Apache to 10,000 connections (with no answer yet)
  107. Getting a minimal environment for a third party GNU Emacs package
  108. An unfortunate limitation of the Apache server status page
  109. How you wind up with switches above your office's false ceiling
  110. Maybe assigning TCP connection to Linux traffic control 'flows'
  111. The story of how we (eventually) found our missing firewall rule
  112. Making sense of diskless workstations through two models of them
  113. Ubuntu 26.04 has broken shutdown announcements and <code>wall</code> doesn't work
  114. Changes in how something behaves are a signal (but can be hard to notice)
  115. The Rust coreutils (uutils) are sticky in Ubuntu 26.04 LTS
  116. How my desktops wound up with multiple D-Bus user session instances
  117. Argc and argv in early Research Unix
  118. The early Research Unix <code>exec(2)</code> argv size limit
  119. Systemd and your user D-Bus session bus
  120. Prometheus 3.14's (likely) duration functions, especially <code>step()</code>