Why does man print “gimme gimme gimme” at 00:30? (2017)
unix.stackexchange.com
unix.stackexchange.com
- "Why does your test script call man where it should fail?"
- "why do you need to do a 'man -w' every minutes?"
I get that there's a bit of mistrust in some things users report so in some cases we as developers need to be careful to establish the user's actual intent or whether they're describing their issue correctly. But this isn't one of those cases.
[0]: https://meta.stackexchange.com/questions/66377/what-is-the-x...
But the answerers cannot know that. So adding a small snippet of what have been tried, or why X specific is what's needed is a good idea to steer the conversation in the correct direction.
I, for one, never use places like SO anymore because everyone just wants to pretend you really want Y, because that's an answer they know.
However, it's hard to tell if the quality has actually changed, or whether it's just more geared towards novice programmers and I'm just not asking the type of questions that get help on the platform anymore.
Although tbh I quite often want the opposite, so I add "Alternative solutions/workarounds welcome" or "I don't see how I can avoid doing X but maybe..."
Listing all of the things you don't want to do would not only take up more words and effort than the question about what you do want to do, but is hopeless. Somebody who doesn't know the answer to your question but still wants to comment will find something that you were unaware you didn't want to do.
It's better just to answer questions directly, and then when somebody uses that solution and it doesn't get them closer to the solution to their real problem, they'll ask a better question.
And bad solutions can still "solve" problems with horrible trade-offs, so instead of searching again for a better solution people may just employ the worse one unaware of the better possibilities, consequences be damned.
For instance, if it's a semi-vague question just pointing in the direction of a solution, then I think it's fair to question the motivation of the poster.
But if it's a very precise question about how to accomplish something specific, I think the burden should be on the person answering to add the clause: "you can do X, but its generally not considered a good idea because Y".
Honestly if you can't answer the original question, I get the impression you're just trying to be a smarty-pants and show off some domain knowledge you have which is related to the task at hand.
But people look for already asked questions by searching for them. And I don't think that there are many things that are more frustrating, then finding a questions that describes your problem X perfectly and it has only answers to Y.
Maybe the asker really would be best suited with X due to some contrived circumstance, but is that true of everyone else who finds the thread too? Probably not.
I.e. "you can do X to achieve your goal, but you probably shouldn't because Y".
I just don't see how it's helpful or contributive to participate in the discussion if you don't actually know the answer.
It’s analogous to asking “why does pizza taste metallic to me?” and getting “why are you eating pizza?” as a reply.
If you don't want focus on the details, then don't provide them. If you provide them, it has to be because you think they might be relevant. And then it's relevant for people to ask for further details.
So far you seem to be the only one failing to grasp the original point. Your misunderstanding of the analogy does not transform it into a misrepresentation.
When I am asking: "Whenever I eat pizza in the morning, it tastes metallic to me. Has anyone an idea why that could be?"
I dont want someone to answer: "Why are you eating pizza for breakfast?"
This answer is worth nothing. Actually its even worse, cause answering it costs time.
Of course it doesn't, when your "specific" analogy isn't nearly analogous to the situation.
It is honestly a lot more likely that the reason man is outputting ‘gimme gimme gimme’ at a particular time of day is something to do with your crazy test setup than that it is a feature of man.
So for the pizza analogy, think of it more as ‘pizza sometimes tastes metallic to me when I cook it under the hood of my car’. The car situation seems likely to be relevant. It would be surprising, when someone asks a question like that, to discover that it’s actually because the frozen pizzas they buy when they drive to the parking lot where they then cook them under their car hood actually contain iron filings that were put there deliberately by the manufacturer.
I, for one, am still curious why OP is running a test where they call `man` with no input and fail on different stderr.
I would definitely ask them why they think they need to take aspirin with whiskey for their hangover.
If that input indeed did cause that result, you'd expect a forum of human beings to have responses like this:
"Holy shit that result was most surprising! I have to re-evaluate my entire life now. Just curious, though-- what made you decide to lick aspirin and sip whiskey?"
Any response that didn't explicitly confirm the result would be signalling to the world that they are either a troll or a boring contrarian.
Similarly, `man` isn't ever supposed to output `gimme gimme gimme` as reported. That is surprising behavior. And that surprising behavior is trivially reproducible by the likely harmless act of setting your machine to the time specified and running it.
Thus, the fact that this reported case was actually a feature of `man` outs all the people who posted non-sequiturs as low-effort cranks. (Low-effort because they didn't even take the time to run a trivial test.)
Edit: just to be completist about it-- I suppose a respondent in either case could simply challenge the veracity of the report. But that's not what we're talking about here AFAICT.
Edit: to make a steelman argument here-- maybe not cranks, but people who have, for whatever reason, fallen prey to the act of low-effort crankiness.
The answer could have been simply: "It's an easter egg. It's from an Abba song." Done. End of discussion, it answered the question.
But by probing how the user wanted the thing to work, and why it was breaking his tests, and that it was actually happening when he used `man -w`, the maintainer actually understood that it was not a harmless easter egg, and fixed it so it didn't happen when called with -w.
If it's really true that the conventional wisdom about Y is just wrong, and X really is better in some cases, then it will be a long process to get all the experts to reconsider their assumptions, requiring battle-tested proof, and that probably won't happen in a single SO thread.
Still got idiots replying that I shouldn't be doing what I want to do in one line.
Or when X needs to be done but instead all the comments hector the question with useless criticism.
If there truly is a circumstance which makes X the right solution, then that might warrant a new question being posted with the additional context to make that so. But I suspect it's much more often the case that the asker is simply being stubborn and doesn't want to change their plans.
Obviously not the ones making the “why are you $X” comments in this case though.
Obviously it's possible for non-experts to post authoritative-sounding answers on questions that they don't really understand, but I think that is a different category of problem from the "XY-problem" style answers.
But the answer to the question "How to do X?" really shouldn't include more than a passing reference to "Here's how to do Y." If X is impossible, then that is of course the answer.
And as others have indicated, the most frustrating scenario that happens over and over is that once the "How to do X" question is asked, you can never get an answer to that question if the original poster relents and agrees that what they really need is an answer to "how to do Y?".
Would you be willing to be responsible for the fallout of answering that question any other way besides "use parameterized queries instead"? Do you really think that should only be mentioned as a passing reference?
And since every question about such things get auto corrected to use parameters (which doesn't help, since it's something else entirely), You have millions of buggy self glued sql queries allover code bases. (but hey most of them are using parameters, so yay - progress)
And the passing reference to the potential misuse here can be a big bold statement at the top of your answer.
And if you are really trying to solve Y, it's not hard to specify that in your question (I know I can solve X without solving Y, but I don't want to solve X, I want is to solve Y in this case). I wouldn't say "there's nothing worse" than that; it's a minor inconvenience.
Then either: I do know what I'm doing, and my explanation satisfies people, and they try to work on Y, or: it turns out I was indeed wrong, and I should have solved X some other way.
Either way it's a win for me (if anyone bothers to answer the question).
But it can be hard for either new people, or people who don't know the domain well enough to even know that it could be an XY problem.
But yes, it can be a lonely game :)
If you see a likely XY problem, answer X, then explain why they might want Y, and then answer Y.
The XY problem in practice: Someone doesn't know the answer to your question so they randomly choose a response from the ten things they do know.
Also: If we're calling it the "XY problem," does that make it mansplaining? (XY? Get it? Sorry.)
If the advice is really that bad or uninformed, then it should just be downvoted. That's not really related to the "XY problem".
Ever heard of a thing called signal to noise ratio?
Sometimes it’s a case of “I don’t know the answer to that, but I’d like to help. I’d like to know more about why you’re doing that so I can perhaps suggest something that doesn’t require doing that anymore.” Which indeed may be very helpful because even if you knew the real answer to your problem, in many cases you’ll need a workaround since the behavior probably won’t be fixed anytime soon.
However if any chance you have the same situation as OP, it may come out valuable, either currently or in the future.
From the man page:
> -w, --where, --path, --location
Don't actually display the manual page, but do print the location of the source nroff file that would be formatted.
Similarly on Stackoverflow, a majority of users probably are doing it wrong and are helped by the XY-troubleshooting approach.
Experienced users who really do want X end up being collateral damage.
Reading all of the replies and context around the solutions, you're right that it doesn't appear to be one of those cases. But I don't think it was that clear cut from the original question.
The counter to this is, I believe, much much more common on SO: someone comes up with an odd solution to a problem in their head, tries to implement said solution, runs into challenges and comes to SO asking for help making their solution work. That then leads to over-engineered workarounds for hurdles they would not have encountered had they asked for help with their actual problem.
In some cases the people answering have the experience and breadth of knowledge to understand the "real" question being asked, even if the OP doesn't quite have it yet. Other cases, it seems like arrogance and showboating, and doesn't contribute much where a simple direct answer would be best.
The one that gets me is seeing an answered question, with a bajillion upvotes, locked by mods as "off topic" or "not useful" or whatever. Clearly a relevant question with a useful answer, as evidenced by the many comments and kudos. Ugh.
Of course there are cases where the question poser of Y benefits from having their X identified, an archetypal case here:
https://stackoverflow.com/questions/2691018/decimalformat-an...
You guys are so confused you don't even get yourselves.
But they still say. "I'm trying to do X. To do this, I'm doing this complicated Y. How come Y doesn't work?"
This is still XY because they're asking about Y. But in the bad cases, they'd only mention the Y part, and omit that they're trying to do X.
This is "I'm trying to do X" -> "Here's how you do X"
So person is trying to solve X, but asks
"How do you do Y?"
"Why are you trying to do Y?"
"Well, I want X and Y seems to be the solution"
"No, to solve X you want to do Z."
In this case the asker nicely gave their X as part of the question, but the bulk of the question was still about trying to move forward on their mistaken "solution" Y.
1. https://meta.stackexchange.com/questions/66377/what-is-the-x... (and note all the other answers saying the same thing.)
Y: How do I strip unnecessary symbols after a decimal point?
X: How do I round a number to a desired precision?
It looks like the perfect example of XY problem to me. Please tell me how I'm confused.
In an XY-problem situation, X and Y are different problems.
The first action concerns a syntactic property of PI's decimal representation while the second action concerns a semantic property of PI's value.
A related example given on https://xyproblem.info is a user asking (Y) how to extract the final 3 characters of a filename string when he probably intends to ask (X) how to retrieve a filename's extension.
To build off of another user's example, answering
>"If I eat pizza in the morning, why does it taste metallic?"
with
>"Because of a chemical reaction due to blah blah blah... which raises the question- why are you eating pizza for breakfast anyways? Avocado toast is superior for <reasons>"
Would be far more productive of a response for both cohorts of users; those searching for the direct answer and those searching for a better solution of what to have for breakfast.
Sadly while many people enjoyed it, others were annoyed by it. And the author has now removed it.
I find it hard to relate with people who not only would be annoyed by something like this, but are annoyed about it enough to push their view on the internet to the point that the author feels the need to remove it.
In my view, the best response to those people? Update it to a more recent, or perhaps a more recognisable reference. Perhaps "Rocket Man".
Elton John - "Rocket Man": released April 1972
ABBA - "Gimme! Gimme! Gimme!": released 1979
So maybe it's more recognizable, but definitely not more recent.
Aside from that, the joke of printing this phrase at 00:01 only works with the ABBA song, because it refers to a man after midnight...
ABBA - Gimme! Gimme! Gimme! (A Man After Midnight)
> Half past twelve [00:30] and I'm watching the late show in my flat all alone, how I hate to spend the evening on my own
The chorus later continues
> Gimme Gimme Gimme a man after midnight
Of course a more reasonable approach would be to grep the source code.
And the author's initial response was to leave the easter egg in, but to just fix the bug in it, since this behaviour was never intended (the intent was to trigger the easter egg on error condition, the bug was that it also triggered on manpath lookups).
Later in the thread the author mentions they eventually removed it completely after "some reflection", but they don't really expand on their reasons.
Were people annoyed? Was the author pressured? Was that the reason?
Of course there may be some that have been using the existing behavior as a convenient way of telling if it is 00:30, but they have so far apparently remained silent.
As xkcd says (https://xkcd.com/1172/), "every change breaks someone's workflow".
For me, the point of an Easter egg in software is to make people who discover it smile without getting in their way: make a few people's days a little brighter. The nature of this one was that it wasn't all that likely that people would notice it - you had to run man without non-option arguments at the right time and you also had to know enough about ABBA for the output to remind you of the lyrics. For six years I heard barely a peep about it, and I'd pretty much forgotten about it myself, then suddenly it turns up on Stack Exchange and is all over the internet. Somebody on HN suggested that maybe this was the fewest bits needed to encode a widely-distributed earworm. The Register later had a comment thread on it full of ABBA puns. I'd only ruin it if I decided to be an arse about it; for a formerly-obscure silly bit of code, it isn't going to get any better than this anyway.
Four years later, it still occasionally crops up and I get an ABBA earworm for the next day. I'm not sad about that!
I wonder if AI’s will create Easter eggs in their creations? Would they see them as a form of play, or only as a form of waste? What would that say about the eventual differences between a human and an artificial mind?
NPM turned out to be the source, with (this time) an American cultural reference: https://github.com/npm/npm/issues/20439
I would much prefer 1 January 1970, 1 January 2000, or some other date that is clearly a placeholder.
Swedish, please.
> This issue has been fixed with commit 84bde8: Running man with man -w will no longer trigger this easter egg.
Running man with no arguments still triggers it. I also must have missed the part where someone "pushed their view".
https://git.savannah.gnu.org/cgit/man-db.git/commit/?id=84bd...
https://git.savannah.gnu.org/cgit/man-db.git/commit/?id=b225...
Yeah, this is what they wrote:
>After some reflection, I've removed this Easter egg. It'll be gone in the upcoming man-db 2.8.0.
If they want a cute reference every invocation, fine. If they want a cute reference in a bizarre edge case, well maybe. Still poor taste. I don't like to think what it will take, but sooner or later the people demanding that programs do what they are documented to do are going win the battle. They have technical correctness on their side.
Good on the maintainer for being responsible.
Where is the boundary between responsible and harmless fun?
Perhaps I should be careful not to edit this comment in case someone's test pipeline curls it and checks the content.
One could also do like the nano developers did and add a straight forward configure flag to disable Easter eggs, which some distros then dutifully set for their nano packages.
Gimme gimme gimme. Gimme some more. Gimme gimme gimme. Don't ask what for.
I'm glad the VLC developers never backed down from the Santa hat popping up near Christmas, despite ridiculous criticism from a tiny minority of users.
If you don't like it, fork it.
I wonder if the difference in response due to 8 years of shift in culture, or just different size of the maintainer?
This costs lives - people in France are killed because they made fun of the imaginary friend of some people. This is horrible and, unfortunately, we as a society start to give up. Teachers are told to be sensitive and not show pictures of gods, tomorrow this will be creationism and homeopathy and we will end up as another US.
I get offended all the time, but people are free to express their minds without fear. Even if they are obviously wrong because they do not agree with me (whom in contrast is always right and they do not get it).
Blackmail, master git branch, blacklists - all these changes are simply idiotic and the people who are proud of having changed that (and removing a hat on an IDE) probably do not realize that everyone officially tells them that we are proud of not offending them anymore, and when the micros are off they are called negros, twags and whatever word is painful to them. This is really sad.
They are the first ones to lose here, by having invisible walls built around.
I have a very good friend (a woman) who left a great company because she joined when the "diversity" program was live. She was told by her male colleagues that it used to be who you know, who you sleep with and now if you are a good match for diversity. She was brilliant but could not stand that and left for a smaller and more normal company.
All these forced ratio and PC is really against the ones it tries to help or make comfortable or not offend. And to be clear - having been on the receiver side of such campaigns (a minority), it took some time to build trust wit the ones who were not part of the minority. I also felt how it is to be a mnority as a kid - and it was horrible.
But PC is not the way to fix that.
I used somewhere else the analogy of catholics in France. They are being made fun of, they react (or not) but it ends here. This is the reason why they are integrated to French culture, and protected by this culture. The village I live in has a yearly mass outside of the church. As a complete atheist I find this great because this is a tradition and I like to see the folklore (whihc is faith for the ones who attend the mass). OTOH catholics do not try anymore to actively get in your bed to check what you do there, or try to push some god into our school books. And we like them.
Seriously, while on the one hand I welcome that we have become more culturally sensitive, on the other hand in some situations we should just get a thicker skin and learn again to say 'nope'.
Happened here the other day in a Perl thread. Someone made a pretty funny (to me) joke. Having used Perl too much I appreciated the joke but some read it differently.
Like the tabs v spaces, Vim or Emacs, to me it seems funny and nothing to get riled over but some just become so invested in taking offense/personal.
Go ahead.
The question wasn't asking for it to be removed, this is wholly the author's decision. Can we not overreact?
I'm not actually that surprised the easter egg broke something for someone even in 'man', for the exact same reason, but it's probably less expected than with grep and lots of other unix utilities.
If the primary maintainer of 'cat' decided it would be funny to have it output "meow" when run at 00:30 in the morning, it's totally their right to do it. I'd expect a lot of downstream users wouldn't find it that funny and would want to patch it out pretty quickly.
The original request was ridiculous but in fairness the "if you don't like it, fork it" attitude is really bad too. Forking something isn't zero cost. You'd have to maintain it, and then try to get developers to come to your fork, teach users about your fork, and then you end up with the annoying ffmpeg/libav situation where you have two similar but different projects.
It's kind of like saying "if you don't like Trump why don't you just leave?".
A better and more honest response would have been "I have considered your idea and I unfortunately disagree and won't implement it."
Oh well, it was quite funny while it lasted. I like to imagine a person searching "man gimme gimme gimme after midnight" and being, for lack of a better word, rickrolled with that ABBA song.
I'm honestly curious on this one
I understand it derails the point of the exchange, but I cannot fathom how this could be a legitimate use case. I'm not saying it's not, quite the opposite, I'm sure it was, but my curiosity has been piqued and for no reason whatsoever I must know.
It reminds me of the Married with Children episode where AL has a piece of a chorus of a song he remembered and it drove him insane until he remembered. It was hm hm himmmm and the song was I Will Follow Him, I believe.
I felt that, I had read a book as a child and it fascinated me and started my lifelong obsession with books. I could remember parts of the book, but search engines sucked for many years. I don't remember when but at some point google crawl bot scraped the synopsis of the book-it was a Forgotten Realms book 'The Night Parade'. Incidentally it was very little like I had remembered but I still loved re-reading it.
Anyway, hopefully that will happen with this question one day. I'll remember it, search it, and maybe find the answer.
https://git.savannah.gnu.org/cgit/man-db.git/tree/src/man.c?...
Looks like it's still there, but I don't know the intricacies of C. Does it print "gimme gimme gimme" at 00:30 just by invoking "man"?
Imagine you’re running curl. Do you want it’s progress in stdout when you’re piping it? No. You want the output, and you shouldn’t have to use —silent to get only that.
That's not the learning here - the easter egg was merely moved, not removed.
https://git.savannah.gnu.org/cgit/man-db.git/commit/?id=b225...
But actually, how do I know they haven't paid? Maybe they gave the restaurant money ahead of time when I wasn't around, or they paid secretly behind my back...
Or they just haven't paid their bill and i don't need to dig into it further. i ask them. If they paid, they'll let me know.
If they have, I'll know. If I don't know, they likely haven't. If they have anyway, they'll tell me.
If you're contributing back to the software somehow, you'll have a more direct line to the developers. I've worked around, with and in open source nearly two decades, I've never seen this not be the case for anyone whose contributions weren't insignificant.
If your issue is anything but trivial, you'll be going through channels where it is in fact obvious you have contributed back. Not stack overflow. For this issue it absolutely applies.
If you can prove to me that the original poster/company has significantly contributed to the utility in question, I'll buy you a pizza. Your choice of toppings.
> God forbid you disturb the automatic tests of a company who's using your software without giving you anything in return.
By that measure the reaction to KDE CI asking about this man bug would be the same: "fuck them, what did they ever do for us". Fair?
This of course would be different for the (all-to-common) example of someone barging in and making threats/demands, but that's not the case here. Someone asked a question, nothing more.
Those who do shouldn't feel targeted by such statements imo.
They also turned on output tracing via another keystroke sequence.
During a presentation, one of the consultants needed to turn on tracing in front of a VERY large multinational client (heavens knows why, it was in front of C-suite execs…). They hit the wrong keystroke, and up popped the limerick - on a large projector, in front of the CEO.
Don’t put in Easter eggs.
I know it sounds ridiculous, because free software is written by a diverse group of people with diverse goals, but this conversation happens all the time because its advocates often try to represent it as a cohesive whole, that it very much isn't, in pursuit of their own agenda.
Because that's where those "omg, there's something not absolutely sober and enterprisey, such as an easter egg" complaints come from...
Feel free to fork.
It's part of the culture, it isn't safety critical (or should NOT be) and the world is less colorful without them.