The Curious Engineer

All blogs / Misc

Chris's Wiki

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

MiscLinux / UnixSoftware / engineering practiceDev tools / editors / IDEs

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

2026 113

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