Not everyone who disagrees with something is offended by the thing they disagree with. Shall I say that someone who prefers writing documentation in man pages instead of Markdown is offended by Markdown? Is Project Zero offended by buffer overflows?
I've been dreading the day OSS projects became as soulless and boring as corporate ones. If we can't have jokes in technical documentation then it seems that day has come.
Next the FOSS HR department will be asking them to rename the abort function.
But glibc, and huge other parts of the FOSS ecosystem, has been a corporate project for years. Maintenance comes from stodgy companies like Red Hat who install glibc on the sort of extremely stodgy companies who are Red Hat customers.
And for those of us whose day jobs involve using glibc and reading its documentation, we deserve the benefits of free software as much as everyone else. If it is an ethical imperative (as RMS says!) for all software to be free and for proprietary software to die, it follows that the primary battleground is the servers of soulless, boring corporations. Your hobbyist laptop is important, too, because everyone deserves free software. But if free software weren't around, you would have installed a pirated copy of Windows with a keygen with some hentai as its background image and enjoyed the non-HR-compliance of the process, and Microsoft would have been quite okay with it because you would be locked into their proprietary software.
If free software is an ethical imperative - or even if it's not, but even if open source is simply a better way to develop software - then everyone who wants a job in software engineering and is qualified for it should be able to have a job in writing and maintaining FOSS. Human society has determined that if we want everyone to participate in an activity, things work better if everyone agrees to uphold a few norms. They don't have to be the same norms as boring corporations uphold (and you can quite easily argue that the norms of boring corporations aren't that good, actually, at making sure everyone is welcome to participate on equal terms). But the fact that we open our shared infrastructural work to accountability and public judgment is sort of how civilization works.
Hobbyist projects are still as possible as ever. Twenty years ago, you wouldn't have been able to get inappropriate jokes in the technical documentation for Solaris libc, or into MSDN, or whatever, but you could work on some upstart free software project with your friends and do whatever you want. You can still do that. If you want to be the young, upstart libc with some off-color political jokes that's being an alternative to the boring corporate libc, more power to you. Not everyone will participate, but that's what you want. Meanwhile, the libc whose goal in life was to displace the corporate libcs has won - and needs to step into its role.
They want clear, concise and accessible help. They don't want or need tasteless jokes. It is disrespectful to their time to include random garbage.
This is supposed to be read by people who need it, not people who know what is going on and want to enjoy a good laugh.
They haven't always been that way. The Python docs back around 2000 were not that great. A lot of work has been put in by people in the community to get them to the state they're in.
Just last friday I tried to find authoritative definition of the leading underscore mangling behavior in the docs and was not able to do so.
Although I think I would start by saying this: where "spam" and "eggs" is used in Python, it is in the place of any other word, usually a nonsense word like "foo" or "bar", and its presence does not distract. I doubt anyone thinks of actual SPAM or actual eggs when they run across it, and I seriously doubt the documentation authors intended or expected anyone to.
The (so-called) joke in this glibc discussion is a) essentially a pun on the name of the function, i.e., introducing mental confusion; b) a political subject; c) an ill-explained reference to a political subject (did you know it's about the global gag rule? do you know what the global gag rule is?); d) intended to make you think about that subject instead of tuning it out.
Python's use of "spam" and "eggs" adds some character, that's about it. (Python's insistence on "eggs" and "wheels" and "cheeseshop", on the other hand... I find the names cute but if you wanted to get rid of them all in favor of slightly more descriptive words, I'd honestly be in favor.) This joke serves no purpose other than, at best, to distract the attention of the person looking up documentation onto a completely different subject.
In any case that question seems wildly unrelated to the question at hand, which is about a joke that's intended to be a present-day political reference.
I do agree with some professionalism in things that want to be taken seriously. I don't even really like the "Apt with super cow powers."
I do agree this isn't about political correctness. At one time GNU tools were just a bunch of devs trying to write open source tooling for fun or to learn. But with it being such a huge part of our industry now, it does need to grow up.
If you're working on your own small open source projects, have fun with the docs and comments. But don't be like Stallman. Realize if your tools are really successful, those quips might get cut out one day. c'est la vie
https://en.wikipedia.org/wiki/Texinfo
> "Notably, man is not available as an output format from the standard Texinfo tools. While Texinfo is used for writing the documentation of GNU software, which typically is used in Unix-like environments such as GNU/Linux, where man pages are the traditional format for documentation, the rationale for this is that man pages have a strict conventional format, used traditionally as quick reference guides, whereas typical Texinfo applications are for tutorials as well as reference manuals. As such, no benefit is seen in expressing Texinfo content in man page format. Moreover, many GNU projects eschew man pages almost completely, referring the reader of the provided man page (which often describes itself as seldom maintained) to the Info document."
https://en.wikipedia.org/wiki/Man_page
They can take some getting used to if you're not familiar with them, but given how much documentation is available in these formats, it's worth taking a few hours to become accustomed to them. A lot of it is duplicated online as well, so you can often use your favorite search engine.
info --subnodes -o - $PROGRAM | less
That dumps the entire manual for $PROGRAM into `less`, where I can then use regex-searches like a normal humanbeing.I used to hate how GNU manpages would point me at the info docs, but honestly nowadays I prefer info. It really is nice — like a pre-CSS, pre-JavaScript HTML, only it can be beautifully typeset too.
This is a bad take. When wading through dry technical documentation a little humor can make it much less laborious.
As long as the humor doesn't result in ambiguity, there's no problem.
Something like "You can tune a filesystem, but you can't tune a fish." at the end of a manpage may elicit a chuckle but doesn't reduce understanding.
"your technical documentation should have a consistent tone"
I appreciate light-hearted asides in documentation. But more if I expect it than when it's unexpected. Like you wouldn't want to end up confusing some ESL programmer who goes ask a lawyer whether they should be worried about this?
Or if you're really ambitious, make all your docs super funny! But if you mix the tone it's disorienting and maybe bad writing.
"I agree with removing this joke. A bit of humor is fine - indeed, the manual could use a bit more than it has - but this attempt at humor does not work. The manual should be high-quality, and that includes high-quality jokes."
Here, here!
I would even go so far as to say that Why's (Poignant) Guide to Ruby directly contributed a great deal to Ruby's popularity because of the witty content alone.
This isn't a well-constructed joke in that sense - it's likely to cause confusion, not increased understanding.
Disagree with his application in this context
I don’t give a damn about your politics when I’m trying to solve a problem unrelated to them
This is simply untrue; you can look at the patch's commit message and the review thread. The primary justification was that it wasn't appropriate, and the secondary one is that it wasn't actually funny and was tasteless. Nobody said "offensive". You can read the thread yourself.
https://sourceware.org/ml/libc-alpha/2018-04/msg00595.html
(The April history shows the conversation between maintainers regarding the patch itself; if you want to see RMS' reply, go to the May index. RMS and Alexandre Oliva, the two people defending the joke, brought up the concept of "offense", and people repeatedly say in reply that they're not offended. Oliva later says he's offended by other people in the discussion.)
Of course, you're also welcome to believe that everyone who disagrees with you must be offended; you're entitled to your opinions.
The consensus was that it be removed. It was removed. Just because HMS is a FOSS legend doesn't make him God.
According to RMS he does have ultimate authority over all GNU packages, including Glibc: https://lwn.net/Articles/753661/
Isn't that what happened to emacs?
The unforked (for lack of a better term) GCC was set aside, and the fork became the official version.
This is walking very close to the line of outright political advocacy. If you read the entire email thread, one of the examples [1] clearly crosses that threshold. Once that threshold is crossed, it is illegal for a government employee to contribute to glibc in an official capacity, or even a private employee contracted by the government. This includes things like people who need to modify glibc to get them to run on government supercomputers.
[1] Someone suggests blocking out code with #ifdef REPUBLICANS.
No matter how much of a "thick skin" you may think you have, I'd lay money that in a world which truly worked this way, you'd last under an hour before abandoning your position and calling for stronger social norms against being an ass to people.
I just said I agree with RMS on this, and you straight up attacked me personally.
The worst thing I would wish on you is for you to live a while in a world run according to your own espoused values.
If you feel that's an attack, it's a problem with your values.
(at least, that's how I think I'm supposed to respond here, since people aren't supposed to "feel attacked" or "get offended" by such things, apparently)
Probably not the right way to have a discussion.
I do think that's wrong. And I do think having to live in a world where everyone operated by those values would quickly cure the original commenter of believing this sort of thing. In fact, I think it's a very easy way to communicate what's wrong.
You want to transport me back to the 70's MIT AI lab? I'm so there!
(No, Levy's book was not honest to the facts)
What a lot of people don't know is that one of the descriptions used by RMS to talk about how "AI Lab lost people", the story of how he couldn't meet people at lunch, isn't because they left AI Lab for "evil corporations". It was because a lot of people avoided RMS, especially after lawsuit often considered more crucial for the creation of GNU than the Xerox printer story (Stallman violated Symbolics-MIT source licensing deal).
From better sources, I have met two AI Lab members from 1970s - one even claimed to have been RMS' supervisor back when RMS was Harvard Undergrad working part-time (and if certain war story is to be believed, is indirectly responsible for Emacs happening) - the impression left was that a lot of RMS' AI Lab contemporaries wouldn't shake hands with him since 1980s.
Heard also interesting stories on RMS' mismanagement of early Hurd initiative and how it resulted in close to 0 work being done.
But... damn if he's not right about this. The joke has meaning. It still means what he meant when he wrote it. The issue is an important one (to RMS, at least). And no one else has a real argument here other than "it's unprofessional and embarassing and we want it gone".
Same old, same old. The crusty bearded guy is a jerk, but he's right.
Only if you're American and also have the requisite background knowledge to understand it, which many don't.
If you don't know the context, it's meaningless. Which is not a good thing to have in technical documentation.
It's literally the C library reference manual. That's true of the whole thing!
The point is that it has meaning, however obscure, and reflects a particular principled intent of the author. And the request to remove it is cosmetic. And you resolve that by holding to the author's intent and not just polishing it to fit your sense of aesthetics.
Your argument would be an excellent reason to reject a submitted joke that didn't reflect a consensus of the active maintainers; not so much to remove one decades after the fact.
You have to know about the global gag rule prohibiting health providers that receive federal funds from discussing abortion with their patients to understand the entire C library reference manual? News to me.
All you're telling me is that you'd prefer to be googling for strftime() examples on StackOverflow than reading an explainer on US abortion rights policy. Which is fine. But it's not like it would hurt you to learn a little extra stuff along the way, and RMS thinks it would be good for you. And he wrote the manual.
what do you mean by the "C library reference manual"? The glibc man or something else? Cause to me glibc is just GNU's implementation of the C standard.
RMS can decide what goes in the GNU manual, sure. But you didn't even address the fact that the joke is not understandable unless you're from a very specific background (how many people are familiar with US imperialistic politics and the global gag rule?)
Many of us are, more or less. RMS's intention may be to inform more people about such rule(s), since US politics affects the whole world and it is good to be informed.
You really have to be clueless to not get the joke.
I had no idea it related to abortion . I have no knowledge of or interest in abortion laws. I assumed it was something related to US munitions export laws.
No one needs any better argument. It's unprofessional, and it's embarrassing (both as poorly executed joke and as political advocacy bolted onto the technical manual). RMS has a perfectly good personal site and lots of speaking engagements where he is very welcome to advocate whatever he likes and people are happy to see him to do just that. And nobody has a problem with it - nobody ever, as far as I know, demanded to close his site or protested him speaking anywhere, let alone demanded him to be banned. His advocacy (the fact that he's doing what he's doing) is very accepted even among people who disagree with him. However, he insists on doing in in the place where people don't want it. That's just being annoying and stubborn for no other reason but "because I want it so".
I do. If you want professional, there are plenty of professional proprietary vendors out there. Or if you insist on Free Software, probably the BSDs are more professional.
GNU is a social project first, with quality and professionalism being secondary considerations.
The whole argument is about the removal of a statement against censorship (interpreted by some as an "abortion joke"). Of course a GNU project shouldn't remove such a thing for reasons of "being professional". I agree with rms here.
On the other side is the scope. Why is rms being so difficult here? Even though I think he's right, why not shrug it off? Why even bother?
I would disagree with rms here, were it not that in the past he's often been ridiculed for being quirky and irrational about minutiae, and yet here we are, with Facebook and Google controlling the internet, each one of us carrying a personal tracking device and loving it, and e-books being deleted remotely from devices we thought we owned.
So maybe this silly, trivial disagreement about some documentation is more important than I give it credit for at this moment.
rms is known for being difficult, not for being wrong.
I do not see existence of other professional vendors a valid reason for behaving unprofessionaly. Nobody says RMS should behave professionally because otherwise there would be no professional vendors left. He should behave professionally because it's the right thing to do in this context, not because of availability concerns.
> GNU is a social project first
No, not really. Almost all effort is dedicated to code and surrounding matters (yes, GPL too), and very little is dedicated to societal change as such.
> with quality and professionalism being secondary considerations.
If it were true, GNU projects would die long ago. Nobody needs a compiler or a shell that is social project first and quality software second. Nobody would use it (ok, maybe a dozen or so of people would, but that's it). Fortunately, it is not the case at all.
> rms is known for being difficult, not for being wrong.
He's known for both. He has been wrong plenty. He also has been right plenty, including in many important things, but that doesn't make him infallible.
Is joke in documentation useful? Probably not...
I do not believe that for a second. RMS is completely capable of seeing it, and he himself on his own site has this separation, and in there's no indication he is incapable of distinguishing between UNIX API and political advocacy. He just wants to use his considerable technical capital to promote his political agenda. In places, where such promotion is not appropriate.
What I write or not write in my manuals is not for you to decide. If I want pro-choice or pro-life advocacy in there, that's my decision. If I want "I'm with Her" or "MAGA" in there, still my decision. If I make a sucky hoke, you cannot and should not be able to force me to stop telling it.
Of course, you're free to criticize me, or offer feedback on how to improve, or just go with or create a competitor to my stuff, or even just resort to call me a "poohead" if you prefer. But don't ever presume you can just dictate to me what is OK, or "professional".
Same goes for RMS, whom I agree with in his argumentation in favor of his joke, but utterly wrong for trying to dictate to the actual maintainers of the glibc to keep it in against their wishes.