Link: The Anatomy of a PromQL Query
The Anatomy of a PromQL Query (via) is a very clear and nice explanation of what goes into a PromQL query. It covers both the elements (metrics, functions, and so on) and the Prometheus data types you use (such instant vectors and range vectors). This is a very useful article because while PromQL is solidly documented, it doesn't have a concept overview that's as clear and straightforward as this.
Link: Mime type associations (on Linux)
Enrico Zini's Mime type associations (via Planet Debian) is about the practical side of fixing MIME type associations so that various types of files open in the right program on your Debian system. This is an area of interest to me, but I've never pulled everything together into one spot (and compactly) the way this article does.
Link: Code Only Says What it Does
Marc Booker's Code Only Says What it Does (via) is about what code doesn't say and why all of those things matter. Because I want you to read the article, I'm going to quote all of the first paragraph:
Code says what it does. That's important for the computer, because code is the way that we ask the computer to do something. It's OK for humans, as long as we never have to modify or debug the code. As soon as we do, we have a problem. Fundamentally, debugging is an exercise in changing what a program does to match what it should do. It requires us to know what a program should do, which isn't captured in the code. Sometimes that's easy: What it does is crash, what it should do is not crash. Outside those trivial cases, discovering intent is harder.
This is not an issue that's exclusive to programming, as I've written about in Configuration management is not documentation, at least not of intentions (procedures and checklists and runbooks aren't documentation either). In computing we love to not write documentation, but not writing down our intentions in some form is just piling up future problems.
Link: Stop Using Encrypted Email
Stop Using Encrypted Email is about all of the fundamental reasons that you should do that, from Latacora. See also eg Patrick McKenzie, and the discussion on Hacker News where there are more comments from Latacora people (look for tptacek and lvh).
Link: Mercurial's Journey to and Reflections on Python 3
Mercurial's Journey to and Reflections on Python 3 is about what it sounds like, by one of the core maintainers of Mercurial. It also contains some interesting notes on why Mercurial is going to have to keep supporting Python 2 for quite some time and what some of the consequences of that are.
Link: The asymmetry of Internet identity
David Crawshaw's The asymmetry of Internet identity is, among other things, a marvelously cynical yet pretty much completely accurate review of people's identity on the modern Internet in practice. I wish it didn't work the way Crawshaw describes it, but it does.
Link: GNOME Terminal Cursor Blinking Saga
Geoff Greer's GNOME Terminal Cursor Blinking Saga is about how to turn off cursor blinking in gnome-terminal, because the Gnome people are still in love with having their cursor blink despite it being a terrible idea and have progressively made it harder and harder to turn off.
Needing to look this up yet again did cause me to check the Gnome
bug to expose a preference UI for this, which caused
me to discover that you can actually easily turn this off these
days, although not globally; you have to do it for each profile,
turning off 'Cursor blinking'. If you have a lot of profiles and
are the right sort of person, you may want to write a shell script
that uses the
gsettings approach, which still works.
(Why I needed to know this is that for my own reasons I'm doing a from-scratch Fedora 30 install in a virtual machine, and of course it came up with a gnome-terminal setup where the cursor blinks.)
Link: ASCII table and history (Or, why does Ctrl+i insert a Tab in my terminal?)
This ASCII table page (via) answers the question it poses in its title, and the answer is quite interesting. I have a long standing interest in this area, and this page's table explains things like why Ctrl-@ is a common way to generate a 0 byte. The table also makes it clear that at least one case is handled specially, that of Ctrl-? often being DEL. So now that I look at it, the table is interesting reading, not just the history.
(The straightforward implementation of Ctrl masks off bit 7, or perhaps bits 6 and 7, which turns @, binary 10 00000, into binary 00 00000 and thus gives you NUL. But you cannot go from ?, binary 01 11111, to DEL, binary 11 11111, by masking off bits; you have to turn on a bit instead. And notice that it is common to make Ctrl-_ generate byte 31, so we have binary 10 11111 turning into binary 00 11111 through masking, so this is not a general special treatment when the low five bits are 11111.)
PS: There's also this version of a four column ASCII table, but it doesn't have the history and doesn't look as nice as this new one.
Link: A program to read AMD Ryzen RAPL information on Linux
In my entry illustrating the practical difference between CPU TDP and actual power draw, I used a Mozilla program to read Intel's RAPL (Running Average Power Limit) CPU information. In that entry I regretted that as far as I knew there was no AMD equivalent, so I couldn't get similar measurements on my AMD Ryzen based office machine. Well, it turns out I'm wrong about that. Courtesy of @firstname.lastname@example.org comes this information:
this project might be useful to get some readings, came up in the AUR when I searched for a rapl package to install after reading your post. https://github.com/djselbeck/rapl-read-ryzen
The repository calls it a 'a quick and dirty hack', but in my testing
on my office machine, it appears to work (ie, it appears to produce
plausible readings, both under no load and under '
In its current form, it appears to take an instant reading of the
current power level, although I'm not sure I completely understand
what's going on in the code.
My Mastodon remark about tiling window managers
Over on Mastodon, I said:
Two reasons that I'm unlikely to like tiling window managers are that I like empty space (and lack of clutter) on my desktop and I don't like too-large windows. Filling all the space with windows of some size is thus very much not what I want, and I definitely have preferred sizes and shapes for my common windows.
On the one hand, I've already written an entry on my views on tiling window managers. On the other hand, I don't think I've ever managed to state them so succinctly, and I find myself not wanting to just leave that lost in the depths of Mastodon.
(Looking back at that entry caused me to re-read its comments and realize that they may be where I found out about Cinnamon's keybindings for tiling windows, which would answer a parenthetical mystery.)