If you write a post for experienced Linux users about using Linux, do you generally write "first, install package xyz with Advanced Package Tool (APT)", or "switch to a Terminal TYpewriter (TTY)" or "Run the following Bourne Again SHell (BASH) script"? "Extract this Tape ARchive (TAR) ball"?
Some abbreviations are so well known in certain fields that spelling them out in a text written for people experienced with that field isn't that necessary. For people who have any familiarity with this field at all, SAT (and NP in NP-complete, for that matter) are such abbreviations. I'm not against the idea of explaining what SAT stands for either, but your rule clearly doesn't hold up.
EDIT: one point I will agree with though is that the Hacker News title should have been written for a more general audience; something like "Why SAT (boolean satisfiability) is hard". But that's a complaint about the submitter, not the author.
>If you write a post for experienced Linux users about using Linux, do you generally write "first, install package xyz with Advanced Package Tool (APT)", or "switch to a Terminal TYpewriter (TTY)" or "Run the following Bourne Again SHell (BASH) script"? "Extract this Tape ARchive (TAR) ball"?
I agree that GP's rule doesn't apply in all cases (and they did say "rule of thumb," which implies imprecision), but I think it applies to this blog post. The author explains Big-O notation and Turing Machines, but uses the abbreviation SAT without explaining what it means.
The inconsistency is a symptom of the author forgetting to think through their intended audience and what they can be assumed to know already. I see this often on technical blog posts, and it's unfortunate because it's easily fixable.
If the author is trying to reach the type of reader who doesn't immediately recognize terms like "Big-O" or "Turing Machine," then they need to explain SAT more.
Agree, I could follow everything in the article, but was like wtf is SAT, especially since it's in the title of the article. I imagine a big crossection of folks had no clue, hence the comments section.
As for the previous commenter, all of their examples are pretty much irrelevant to what you are trying to do. A random Linux tutorial doesn't need to spell out CLI acronyms, but if you write an article "Hacking Bash for fun and profit" it's expected you put one paragraph background on bash, and explain the acronym.
This sounds like a complaint about the hacker news title, which should have been written for a general HN audience, not a complaint about the blog post, where it is perfectly clear (for its target audience) that SAT means the boolean satisfiability problem.
Which is the problem if the title of the blog post is intended for a mathematical audience and the title of the HN post is intended for the general HN audience.
As others have pointed out, if this is a blog post for a mathematical audience that understands basic concepts in complexity theory, why bother explaining "Big-O notation is a standard instrument for describing performance of algorithms, as it erases small differences which depend on a particular implementation of the algorithm."
Feels like the audience that this post is directed to is essentially "an earlier version of the author", which, to be fair, is a common mistake. I anticipate the average HN reader should be able to understand this blog post - I know what the boolean satisfiability problem is but have never seen it abbreviated as just "SAT".
Don't mean to be overly harsh toward the author, but a first step in good writing is to define who your audience is.
FWIW I graduated over a decade ago, and even non-capitalized, I interpreted the title correctly immediately. The fact that it was on HN and said "hard" let me take a damn good guess that it would be the NP SAT problem.
This article explains what SAT is in basic enough terms that I could understand the idea. I'm guessing nonmath nonCS people are part of the intended audience. I had no idea till just now.
Not everyone here is an experienced prover/mathematician, and SAT can mean different things, and I believe many people will view it as the SAT test especially when you pair it with "difficult" in the tile wihtout any other context.
I don't know how that disagrees with anything I said. I agreed that the HN title should've clarified what SAT means, since HN's readers aren't all in the target audience.
Totally agree with your comment. Just came in to leave for others: I believe "TTY" stands for "Teletype"(writer).
Learned fun facts I didn't know when I hit google to double check: the original teletypes are descendants of a morse-code printing device called the "teleprinter" (from the 1830s!") One of the early popular devices for encoding and printing typographic characters was patented by Emile Baudot(for whom "Baud rate" is named) in 1879! This means that the commercial mechanical typewriter barely predates the teletype.
> If you write a post for experienced Linux users about using Linux, do you generally write "first, install package xyz with Advanced Package Tool (APT)", or "switch to a Terminal TYpewriter (TTY)" or "Run the following Bourne Again SHell (BASH) script"? "Extract this Tape ARchive (TAR) ball"?
I would avoid abbreviations if possible: "install xyz with your package manager", "switch to terminal", "run the script", "extract the archive". In your last example, I would ask myself if I need to specify it's a TAR. Does it matter that it's TAR? Are there any other archives in this project?
I agree that you should write for your audience and if you know they are experts like you, you don't have to explain everything. Personally, I err on the side of assuming less and explaining more.
Funny thing is, if you search for SAT on Hacker News [1] is has results for both satisfiability problems and admission tests. Even funnier is that in the second context, SAT nowadays means just SAT.
Here's an analogy: you write a blog post for a tech/UNIX audience, titled: "Why GNU tools are bloated" or something (stupid example). At some point, someone else posts a link to your blog post to a mathematics forum, changing the title to "Why Gnu Tools Are Bloated".
In those comments, people complain that they don't understand what kind of gnu you're talking about, that they thought you were talking about wildebeest herding, and they say you obviously should have expanded the GNU abbreviation in the title.
Sure, but then you should have „Linux“ somewhere in the title of the post, in the header of the website (M‘s Linux Blog), or start the text with some context.
And not just dive in with something like this: „Ever wondered what happens if you open a TTY and APT something?“, more like: „Have you ever wondered what happens if you install Linux packages with APT on the console?“
Dude the very beginning of the very first paragraph talks about complexity theory and NP-completeness. That's starting the text with the relevant context.
That would be expanding the abbreviation, not explaining it. If context calls for it, one could write "extract this tar ball (a file format for packaging many files into a single one)"
> If you write a post for experienced Linux users about using Linux, do you generally write "first, install package xyz with Advanced Package Tool (APT)"
Some abbreviations are so well known in certain fields that spelling them out in a text written for people experienced with that field isn't that necessary. For people who have any familiarity with this field at all, SAT (and NP in NP-complete, for that matter) are such abbreviations. I'm not against the idea of explaining what SAT stands for either, but your rule clearly doesn't hold up.
EDIT: one point I will agree with though is that the Hacker News title should have been written for a more general audience; something like "Why SAT (boolean satisfiability) is hard". But that's a complaint about the submitter, not the author.