Hacker News new | past | comments | ask | show | jobs | submit login
LOLWUT: a piece of art inside a database command (antirez.com)
387 points by dvdhnt on Sept 12, 2018 | hide | past | favorite | 118 comments

In a similar vein, MATLAB has:



IMAGE (https://blogs.mathworks.com/steve/2006/10/17/the-story-behin...)

There is everything to love about this. It’s left me with a smile on my face. I’m pleased that Antirez has found a productive outlet for the recent trouble. Kudos

I've said it before, and I'll say it again. The problem with letting thin skinned people decide what's offensive and what isn't is the list constantly changes, and contradicts itself.

Now there's precedent. Other people's turbulent emotions define what is acceptable in redis, and all you need to do is throw tantrums and say your feelings are hurt.

This is sheer insanity. If the words are that offensive that they should be removed from a computer program, should they be removed from the dictionary next?

Sheer insanity.

Antirez, I sympathize with you. I'm sorry you have to put up with this madness.

  Now there's precedent.
The court of public opinion isn't a real court, and has no rules, so setting any precedent in this way is meaningless. One guy caves to pressure, and assuredly this is what describes these events. But the next time around, anybody who chooses to, can safely ignore this incident.

This sort of thing comes down to either telling people to shove it, or not. Some people can drop that hammer every single time, others are pained by it, and take the path of least resistance.

Telling people to get bent was a thing for decades, but internet amnesia means some people have either forgotten about it, or never learned how to do it in the first place.

> This is sheer insanity. If the words are that offensive that they should be removed from a computer program, should they be removed from the dictionary next?

Your argument is sheer insanity. Should history books teach facts about slavery and holocaust? Of course they do. Should slavery still be preserved nowadays in a normal society and defended in a normal context? Of course it shouldn't. What's your point?

This incident didn't come out of nowhere and I personally have also always felt the terminologies to be a bit unsavory. I'm glad that somebody out there actually did the job of calling it out. I don't think this is generalizable to many other situations as well. I don't think there are any other terms that made me uncomfortable as this one. Can you come up with an example that might be "subject to whimsical fit"? What a way to distort the argument really.

We seem to be losing our playfulness.

In light of that, I'm going to take some time today to do something random, just for fun, and share it with others.

I added this header to all of our http-responses: "X-Clacks-Overhead: GNU Terry Pratchett"

Which was proposed by http://www.gnuterrypratchett.com/ and as far as I know no one have noticed :)

I noticed, laughed a lot and then got sad knowing that wit isn't there anymore.

I added this to my two HAProxies so everything including my Mastodon instance sends out the clacks.

curl -I https://billetto.co.uk

Well done.

For several years, Palantir's main product had, hidden deep inside of a stack of preference windows, a button simply labeled "Find Terrorist". It was a bit of an inside joke, since at the time the software was treated as a magic box that solved all your problems, and when it was still focused on government use cases.

but you know who doesn't joke around? The government doesn't joke around. So yeah, as soon as it was found by a user, that button was immediately removed. It's just a shame that some contexts are deemed "too serious" for an obviously lighthearted addition with no real detrimental effects.

At least some software has managed to maintain their humor, like Phabricator - https://www.phacility.com/phabricator/

>We seem to be losing our playfulness.

I think that's a good thing. The early hackers could get away with being playful because their work was, in the grand scheme of things, not actually all that important. No businesses were using their code to run payroll and inventory systems. No hospitals were using their code to make treatment decisions. No oil refineries were using their code to runs pumps and valves.

However, as more and more things have become computerized, it's important that we, as a profession, recognize the increasing responsibility that has been placed upon our shoulders. It is time to put away childish things, and focus on what really matters: building fast, reliable, secure software.

I'm not opposed to antirez coming up with a new playful hack to celebrate each edition of Redis. But why does it have to be part of the Redis codebase? Why does it have to be invocable with a Redis command?

Be careful not to confuse solemn and serious. If the Apollo engineers could have fun shooting a tin can at the moon and the Manhattan Project engineers could have fun creating humanity's most terrible weapon, you can have fun making a VC-backed webapp or back-office database.

Don't let anyone convince you engineers having fun is the reason for all the garbage software. That's pure stockholm syndrome. The reason for garbage software is that developers aren't treated like real engineers, and don't act like real engineers. They're children in a room full of adults making Important Business Decisions That They Just Need To Accept. So what if those decisions are bad engineering? You're not a real engineer anyway so listen to the grownups.

The worst part is they do it to themselves. In the biggest sellers market in history, developers don't put their feet down about bad decisions because b-b-but I might get fired! They passively watch, nod sagely when it all goes to shit and say "mmm, I knew that was going to happen" like ignoring the responsibility that comes with professional training is something to be proud of.

You think sales people make more money because they studied harder? It's because they know their value. You think lawyers get taken more seriously because they dress better? It's because they are personally and professionally liable for everything they say - or don't say - to a client. You think doctors have more autonomy because they never have any fun? It's because every doctor knows that no extenuating circumstances, no "but management said", no piece of paper can ever clean the blood from their hands.

Believing that the problem is easter eggs is buying into the same mindset that brought us here in the first place. Those naughty developers again! Gosh, when will they start wearing ties to work, sit patiently in meetings while we talk at them, and then sign off on half-finished garbage code? Don't they know we have a business to run!

But the Challenger didn't explode because of Silly Shirt Friday. It exploded because management didn't respect their engineers. When the first fatal microservice is written, it won't be because developers had fun. It'll be because they don't respect themselves.

>But the Challenger didn't explode because of Silly Shirt Friday. It exploded because management didn't respect their engineers.

That's a myth. I encourage you to read Challenger Launch Decision, by Diane Vaughan. Challenger didn't explode because management disrespected their engineers. Challenger exploded because the engineers themselves normalized deviance. They would launch, observe anomalous results, note that the system hadn't failed, and then expand the envelope of normality to include the anomalous results. At no point did the team working on the SRBs say, "No, we should stop the Shuttle program and redesign the booster," not even to other engineers. Repeatedly, in interviews, engineers expressed surprise and shock at the failure, because they thought that the problem of O-ring blow-by was a minor problem that could be fixed with tweaks. Indeed, on many an occasion, they thought that they had fixed it, only for the issue to recur in the future.

It's easy and comforting for us engineers to think that Challenger was due to myopia on the behalf of NASA management. But it's wrong. Challenger was the result of cascade failure of rationality all throughout the NASA organization, and the engineers are as culpable as the managers.

> No businesses were using their code to run payroll and inventory systems. No hospitals were using their code to make treatment decisions. No oil refineries were using their code to runs pumps and valves.

I think you have this very wrong. Until personal computers went mainstream, all programming was for business (or the military, or research).

It's great that a ton of businesses are benefiting for free from antirez's work (including my own) but we owe him and all the other creators/maintainers of the OSS software we use a debt of gratitude. If antirez wants whimsy in the code base, more power to him.

I also think quanticle is wrong, but for quite different reasons.

I didn't start programming as "a profession", and have zero desire to "put away childish things".

Sure, I get paid (and paid well) to do some of this stuff, and accept "the increasing responsibility" while doing it at work on someone else's dime.


I do it for a living because I enjoy doing it for fun - and as a result of that I'm good at it. I started programming in high school because I was intensely curious about how computers worked, and how other people made them do "interesting things", and how I could do similar or radically different "interesting things" myself. I still (when I'm not too burned out solving work's problems, which are "in the grand scheme of things, not actually all that important") retain that curiosity and the hubris to think "I could do that. In fact, it'd be _more_ hilarious if they'd done it differently... _I_ could do it better!"

Businesses benefiting from my work, or payroll systems/hospitals/oil-refineries using any of my creativity or problem-solving is - for me - purely a side effect of the whimsy and childishness that makes me interested in and good at what I do.

I realise this is a very personal point of view - and I recognise there are people out there (including some of my co workers) who pursued CompSci or other IT related degrees based purely on potential career earnings, and I don't for a minute look down on them or their motivations. But I recognise around me people - like antirez - that obviously share some of my joy and delight in the ability to "just make computers do interesting shit for the hell of it".

(To be honest, I'm in one of my "burnt out by work" patches right now, and this piece by antirez has inspired me to get back to my notebook and pinboard bookmarks, to do something hardware/software related which is completely useless, apart from making me and perhaps a few friends smile...)

I totally agree. I code because it's fun for me and I find it inherently interesting (and yes, whimsical). That I can make a good living doing what I love is great. That businesses can derive value from my code doesn't really concern me either way.

It does irk me to see people be so demanding with antirez. They are in many cases benefiting financially from Redis, all for free. It's ridiculous to get on a high horse and start shaming/bullying someone who created something that you benefit from, even if your benefit wasn't the author's intention but merely a byproduct of them making something awesome.

Heh. Staunch agreement in this thread - respectful disagreement in that other one. We should go for a beer or coffee...

That is funny :) Your profile is very interesting and I'd take you up on your offer. Sadly though, because I speak my mind politically with this account (often questioning the left-wing status quo) I must stay anonymous otherwise I risk real career damage.

Back on topic, it's great to see people who can be on opposite sides of the major areas of debate in our industry have a common underlying love of tech that's bigger than business (and politics).

I'm not saying you can't have fun. But I do think that it's important to recognize that your fun can impose costs on others. Like I said in my original comment, I don't mind in the slightest that antirez is experimenting with visualizing complexity theory on the command line. What I object to is that he's shipping this as part of redis. Why? It just seems like it adds maintenance burden for no purpose.

What _I'm_ saying is that you're free to write your own high performance in memory data store without any bothersome whimsy-related maintenance burden.

Antirez has already written his one, in which he's chosen to include whimsy.

Your objections to him doing that seem... I dunno. Pointless? None of your business? Overly entitled? Not quite sure exactly, but since you didn't pay him to write it for you, objections from you on what he should or shouldn't include in the thing he's allowing you to use for free seem to be at the very least impolite...

While you're happy to burden Antirez with "increasing responsibility" placed on his shoulders in the name of "the profession", you seem to be fairly quiet on one of the fundamental aspects of "profession", which has always implied "getting paid for it". Being part of a profession fundamentally implies "imposing cost on others" for your work. How much money have you offered (or would you be prepared to offer) to Antirez or Redis Labs for a version of redis _without_ whimsy? I'm sure at least Redis Labs have someone in their sales team who'd be happy to negotiate an appropriately professionally priced and supported license for that.

The very name of this command seems to be a perfectly reasonable response to your complaint that this piece of free-as-in-beer as well as free-as-in-freedom software is somehow "imposing costs on you" - LOLWUT?

>I think you have this very wrong. Until personal computers went mainstream, all programming was for business (or the military, or research).

You're misunderstanding my point. I said all of their code. I was referring to the code written by the early "hackers", in university labs. Of course there was computer code being run to compute payrolls and run industrial systems. But you'll notice that that code was very rigorously written, and an Easter egg of this sort would not have been accepted into those codebases.

Wow! "should be replaced by a new implementation at each new version of Redis"

I hope he at least lets you invoke these commands with a version at least. I'd hate to let a work of art go unappreciated.

Yep! That's the idea. If you write LOLWUT version 5 you'll see past versions.

I think it's also kind of poetic if the old versions stop being supported entirely. Then each piece of art is a snapshot of the whims of the Redis maintainers at that point in time, without any pretensions as to the art's usefulness.

Yes I also think that this would be a more neat artistic project because of the intrinsic one time value of every piece. Currently what the code does is to preserve the ability to run the old versions without giving a direct way to do so, that is, it checks the REDIS_VERSION constant to select what to run.

antirez, typo in the command and in the blog post: Georg Ness -> Georg Nees (per the Wikipedia article at least).

Thanks! Fixing.

This is exactly the insanity I expect from a man that have been haunted by an internet mob the last past weeks.

I like these, Sidekiq also have the tableflip methods (with tests) that does exactly nothing, https://github.com/mperham/sidekiq/blob/927680cae78731c540fe...

Back in the days software developers didnt announce this sort of thing and called it "easter eggs".

According to wikipedia https://en.wikipedia.org/wiki/Easter_egg_(media) :

> "In computer software and media, an Easter egg is an intentional inside joke, hidden message or image, or secret feature of a work. It is usually found in a computer program, video game, or DVD/Blu-ray Disc menu screen. The name is used to evoke the idea of a traditional Easter egg hunt.[2] The term was coined to describe a hidden message in the Atari video game Adventure that encouraged the player to find further hidden messages in later games, leading them on a 'hunt'.[3]"


Did you read his other blog posts?

He is not an exclusionary person, and labeling him as such, based on an impulsive reaction to an abstract word, with multiple contextual interpretations, is a misguided interpretation of recent events.

His frustration at irrational demands for unnecessary effort is understandable.

Calling language exclusionary isn't labeling a person.

Pointing out that someone might be viewed as putting forward "dismissive reactionary political statements against the removal of exlusionary language" is most certainly an attempt to smear and label someone.

I have read what he’s been writing about this.

By the way, “irrational demands for unnecessary effort” is a value judgment.

Yeah, the inverse is also a value judgement.

There are at least four easter eggs in the Sidekiq source. You've found one.

Kudos to antirez for starting this refactoring. Switching to replica will clear up this confusing terminology.

I don't think anyone claimed to find the term confusing. They claimed to find it offensive (mostly on behalf of theoretical others).

I find it confusing and nonsensical. As they say, naming is hard and using the correct term is a worthy refactoring IMO.

As you know, the term has been in use for decades and no one was confused. It's ok to say you find it offensive. I don't agree but it's a more honest take then all of the sudden finding a term that's been in use for 50+ years "confusing". In no way was the term master/slave stopping anyone from understanding how to implement functionality with Redis.

There may even be a more accurate term for Redis' architecture, great. Is it worth a breaking change to get a better metaphor? IMO not in software deployed at the scope of Redis and those offended should have the onus of implementation and support.

> As you know, the term has been in use for decades and no one was confused. It's ok to say you find it offensive.

I don't think that's a powerful argument _against_ the change antirez has chosen to make. There are a lot of other terms that were in common use for decades, that confused no-one, that reasonable people have stopped using because they're offensive to other groups of people.

That's my argument against saying the term master/slave is confusing. Like you said, some people found it offensive, there's no credible argument that says it was confusing (although people are trying to make it).

My argument against making the change is that it's high risk for a functional NOOP.

A "functional NOOP" for people with a particular privilege.

Rosa Parks would have risked much less and still have gotten home if she'd given up her bus seat. Would that have been a "functional NOOP" too?

(Edit: In rereading this I can see it might be taken as accusative or aggressive. It's not intended in that way, and certainly not intended to accuse you personally of overprivilege or racism...)

I didn't take it as a personal attack (and didn't downvote you) but I don't agree. There was an actual rule in place that Rosa Parks had to stand up against, not just terminology she was uncomfortable with.

I think it's not safe to assume people who are from minority groups or people from underprivileged backgrounds have a problem with this (source, myself).

When you experience actual racism, something like this looks pretty silly. I'm in agreement with antirez. I wouldn't use these terms in a new project, but their use for the past half a century should be pretty uncontroversial and definitely not cause for mass mobbing/shaming...

Insanity? I can't begin to comprehend how extremely unimaginative someone's mind must be to call this insane. Is there really nothing in your world beyond value and usefulness?

From the context it sounds like "insanity" here is used with a positive connotation.

You might have skimmed over the rest of the parent comment. The second paragraph clearly states a liking for things of this sort.

Can you please not break the HN guidelines like this? Even if you're right, a personal attack is the worst way to express that; and there are plenty of other plausible ways to interpret the comment you replied to.


I love Easter eggs like this one! I usually put in a secret route in web apps/APIs that I build that spits out a silly meme. Not that anyone will find out, but still gives me joy.

P.S would’ve been even more awesome if Antirez could’ve slipped this one in without the whole world noticing but I guess that’s impossible for a hugely popular open source project.

I love Easter eggs like this one! I usually put in a secret route in web apps/APIs that I build that spits out a silly meme.

On my personal site there's something similar to this, a link to a page that technically got moved and should have a proper redirect but instead I left it and replaced the contents with a gif of the Ferris Bueller after credit scene "Are you still here? Go home".

A few people have stumbled across it and sent in humorous tweets telling me they found it. Never fails to put a smile on my face in the middle of the day.

> I love Easter eggs like this one!

Have you read Ready Player One?

It's been a rough few weeks for antirez, but I just want to say how much I appreciate his work on Redis and open source in general. We're lucky to have him.

Absolutely. First was the Apache commons clause license, and responding to random folks who assumed Redis was going closed source. Then the current issue of changing master slave termibology,and having to hear negative things from both the camps.

Lolwut is the perfect break from madness.

I'm both aghast and amused that people are making a big deal about master/slave when used in the context of computers.

The way I look at it, the amount of effort required to change that terminology is less than the amount of community discomfort generated by keeping it.

That's all kind of tossed out the window when people start bullying the maintainer to get their way. Now you have to deal with the fact that some members of the debate are decidedly acting in bad faith, making it much cheaper to simply say "okay, fuck off now, we aren't talking about this".

That is exactly what I have done in the past. I have told social justice warriors patrolling around to random projects that do not even contribute to leave and not come back. My response to those that do contribute to the project is, "Are you will to make, test, and solely support this massive change for the next three years as part of a long term support release?".

That’s.. really interesting. I’m having trouble figuring out how a codebase could offend a person. It has to be more than using masculine pronouns or something - do you have any examples you’d share?

There are a lot of busybodies on Github, sometimes these go viral on Twitter and other locations for the heated discussions. Here's a small collection of various levels of offence. Some are merely polite requests and some are "horribly offended". I think one or two of them may even be concern trolls but that doesn't matter since they still got the changes made.

There are a few hundred other examples to pull from, these are just a few I chose at random while trying to select ones that are more about the code, or terms used in the code, than contributors or maintainers of the code.

[0] https://github.com/WICG/feature-policy/issues/150

[1] https://github.com/NARKOZ/hacker-scripts/pull/152

[2] https://github.com/Droogans/unmaintainable-code/pull/20

[3] https://github.com/braydie/HowToBeAProgrammer/issues/68

[4] https://github.com/spencermountain/compromise/issues/117

[5] https://github.com/syl20bnr/spacemacs/pull/3484

[6] https://github.com/nodejs/node/issues/3721

[7] https://github.com/twolfson/sexy-bash-prompt/issues/56

[8] https://github.com/infinitest/infinitest/issues/149

[9] https://github.com/edankwan/penis.js/issues/7

[10] https://github.com/Colorsublime/Colorsublime-Themes/issues/8...

Wow, thanks for all the links. I just spent way too long reading all of these.

I found some of the requests to be pretty reasonable. Some were reasonable, but not very pragmatic. Some just kinda elicited an "eh, come on?" sort of response.

Haha, yeah, I just read through that entire list. I'd say that more than half of those seemed very reasonable and civilized to me. But the people complaining about penis.js seemed to have completely missed the point of that whole project.

I then started browsing through my own code to see if anything seemed offensive. One thing that caught my eye: in SPI communications, there is very clearly a "master" and a "slave". I have programmed many SPI-related code... So now I wonder, what was the original complaint in calling Redis servers "master" and "slave"? That terminology is very, very common in computers.

EDIT: I guess this is the original complaint?: https://github.com/antirez/redis/issues/3185

EDIT #2: I guess I'm late to this conversation: http://antirez.com/news/122

It makes me very angry when "they" (I'm not even sure who "they" are or what their motives are) go around policing random software projects for political correctness compliance, bullying/mobbing the maintainers if they don't comply, etc. These people even go after your project if one of your maintainers is deemed politically incorrect outside of the scope of the project (i.e. on Twitter) and demand they be kicked out.

I miss the days when politics and political correctness didn't directly affect software projects. What do these political police stand to gain from all of this?

> What do these political police stand to gain from all of this?

A warm fuzzy feeling of seemingly contributing to the Forces of Good and fighting the Forces of Evil. Some launch rockets to the Moon, some create beautiful art, some create awesome software. Some instead bully people to not use certain words. The consider it their contribution to the society. Unfortunately, as more and more people fold to their pressure, this serves as confirmation that this contribution is worthwhile and there's more to come. If you write a symphony and it is applauded, you want to write another one. If you speech-police one project and it works, you want to speech-police another one.

It's creating a culture that is welcoming to more individuals, regardless of sex, race, and background.

It's not bullying. In fact, I'd say active code maintainers who receive these requests and don't _reasonably_ accommodate them are the real bullies.

> It's creating a culture that is welcoming to more individuals

Somehow I feel less welcome in a culture where there are lots of people vigilantly seeking offense where none ever was and waiting to pounce on the use of every word they can find any reason, real or imaginary, to feel slighted with. In fact, I feel a strong desire to not touch such a culture with a ten foot pole. I am glad to contribute my time and my effort to open source (and I regularly do), but I would not want to be a target of hate mob trying to ruin my life or argue with concern trolls, that's just not how I want to spend my life.

> It's not bullying

You do what they want, or they'll hurt you and your project. How it's not bullying?

> In fact, I'd say active code maintainers who receive these requests and don't _reasonably_ accommodate them are the real bullies.

You may say whatever you want, but you will be wrong. Actual bullies are those who try to force people to behave to their liking with threats and hurt. No amount of redefining terms will change that. If you threaten to hurt someone in any way - virtually or physically - over some words that they say or don't say to your liking - you are a bully. It's not hard to see.

This is extreme and very, very far beyond the scope of what I was attempting to discuss.

That's a lot different than simply submitting a PR to change "man" to "person" -- If there's actual physical threats occurring on a regular basis within our communities I'm severely uninformed. No argument, it's bullying and it's wrong.

I suppose in that case, I advocate the underlying message but not its conveyance.

Creating and maintaining an open source project is an act of generosity. Making demands on open source maintainers and "shaming" them into political actions in no way creates a welcoming culture, quite the contrary.

If you don't like the code, fork it if you must but don't harass the creator of the thing you get to use for free.

I believe I'm misinformed about what's happening lately, I'm not advocating for political action or anything of that nature. Just supporting the underlying message.

> I miss the days when politics and political correctness didn't directly affect software projects.

They've always affected software projects, they just haven't affected you.

> What do these political police stand to gain from all of this?

Making other people feel as welcome in software as you've already been by default.

> they just haven't affected you.

Not OP but it's extremely pretentious to assume that.

More generally, assuming that "people against changes (that you personally think are positive towards minorities)" are not part of said minorities tends to be as incorrect as assuming that the people in favor of those changes are part of them.

Furthermore, just because the term "minority" implies that there is a minority of people in that group, there are many minorities which together form far larger groups. So "encountering a minority" isn't uncommon. And I've seen on multiple occasions horribly-arrogant people addressing some of my white male friends, claiming they're oblivious to "the plight of minorities", all because said friends didn't come forward to explain they're gay.

So all that to say, don't assume the person you're replying to hasn't been affected by those things. Even if you're correct, it's not a correct nor even safe thing to assume.

> Making other people feel as welcome in software as you've already been by default.

If you're only superficially aware of the issues involved, it's easy to think that superficial changes will suddenly improve things. It's also all too easy to ignore the fallout of those changes.

Reminds me of PETA's philosophy towards animals: If they can't be free, then they're better off dead. Ignoring that PETA:

1. Isn't objectively correct / morally right

2. Harms the greater cause with their methods (by harming public perception)

In general, not being tactful is a terrible idea. Forcing changes through is a terrible idea. Bullying people is a terrible idea. And if you think these tactics are worth it to "make people feel more welcome", I don't know you.

I responded to a comment pining for the days of politics not affecting software, by pointing out that software development always has been. I'm not commenting on any particular changes here, I'm commenting on the position of "I don't want to think about politics" being a position that biases in favor of the status quo.

Apart from that, I'm not suggesting that people should ignore normal contribution procedures and conventions when making such contributions. Nothing in my comment is endorsing ever single person who has ever made such a contribution, regardless of the approach they took. I am, however, suggesting that maintainers who refuse such contributions (for reasons like "I don't want to do this" rather than "this change has issues, please address them") are part of the problem.

Not the above poster, but, alas, given some of the behaviour I've seen, I'd no longer be particularly inclined to be welcoming. In some sense, a broad, offensive filter is better than doing it manually. Who cares if it reduces user count or whatever - it makes my life easier.

Perhaps it's a "good" thing I haven't created any major OSS projects...

No, they're making themselves feel righteous, at very little gain to the minorities they're ostensibly protecting. I'm Slavic. The name for my ethnicity literally means, and is the root of the word slave. Shouldn't I have more say than anyone how my ethnic identity as a slave gets bandied about? I say the master/slave terminology is effective, evocative, and useful.

I've come to believe its a mix of virtue signalling (public, empty gestures intended to convey socially approved attitude without any associated risk or sacrifice.) and pat-yourself-on-the-back slacktavism (there, I tweeted about what people perceive to be a problem, therefor I've done my part).

In essence, they get to tell themselves (mostly convincingly so) that they have contributed to reduce inequality and discrimination, and are helping right a historical wrong.

In the end, I dont think it changes things one wit - but it makes people feel better, so I guess its a net good over time - albeit an unconscionably silly one.

Since time immemorial, some people have gotten outraged over what others consider to be ridiculous or trivial things. That hasn't changed.

The only thing that has changed is that social media and the Internet in general have made it much easier to organize.

Software projects have always been plagued by humans arguing with each other.

I didn't think that is true. Have you ever seen legacy code. Some code in Cobol and Fortran still exists and is functional. Redis isn't as old as those ofcourse but everyone who used it will need to change code and docs. This isn't some isolated word doc that can be fixed with a findall/replaceall command this is backend code connected to many systems. I am not even a professional developer , I am a researcher/grad student and I have faced such issues with something as new as Tensorflow.

If it is such a big issue, then those who had the problem can fork the repo and change the terminology in their fork. Legacy code that wants to use updated redis won't be affected.

Ensure that you're measuring community discomfort accurately, though: volume of noise about something like this usually correlates less to the number of people who are upset, and more closely to the number of people who think that someone else could possibly, potentially be upset.

To that I say:

If you think it's that easy, you personally should be the one to do the work to change it.

Now that sounds incredibly snarky, for that I apologise. But it does sum up a lot of people's thoughts towards it, and it's no more snarky that the typical twitter driveby of 'it's just a find/replace'

Anyone who has actually read the author's explanation (not saying you haven't), knows that he would choose different terminology in hindsight, but the work involved in updating documentation, and maintaining protocol compatibility that allows redis to keep its backwards compatibility features it aims for is non-trivial.

Not to mention all the documentation, and also the ongoing responsibility to third party code and infrastructure which relies on the ecosystem, that has to update along with this.

That's all work, constant, ongoing work.

Should they still make this change? Maybe, master/slave isn't exactly accurate.

But my point is that talk is cheap, and the loudest voices seem to be the folks with no willingness to put skin in the game to change it.

If you truly believe it's so trivial, why won't you help with the labour, both initial and ongoing?

I didn't say it was trivial.

You didn't use the words, but if saying that community discomfort eclipses all the different types of the work involved (with your point being that they might have been better just doing the work) isn't a trivialisation of said work, then I don't know what is.

EDIT: Actually, I take that back, sorry. If we both have different estimations of what the community discomfort actually is (both the discomfort currently and the discomfort that will be caused technically), then I can't make that call and say you were trivialising it.

My point is that a lot of the more vocal elements were definitely trivialising the work involved, going as far as suggesting that the maintainer is an asshole for not just doing a find/replace.

It's hard to take that in good faith, as if it were just a find/replace, why don't they offer to take care of it along with any ongoing technical consequences?

The answer is that they're both ignorant of the technical implications, and ultimately, more comfortable shouting from the sidelines than rolling up their sleeves, preferring instead to make innate character judgements about the maintainer.

Yes, and I think this is indicative of a broader problem with humanity itself.

It's very easy to assume that things that impact oneself negatively were done out of malice. Most of the time, these are innocent or naive, not malicious. However, as humans, we tend to jump to the worst possible case and _act on that assumption_. That's the real problem here.

I'll add another point: if the reason to not do this is the effort, then why is effort being put into generative art in redis? To be clear, I think this is neat, and appreciate that antirez can and should add some joy into the world in what ever way they see fit. I'm just playing devil's advocate.

With that said, changing terminology is more than just a code change, there's a bunch of documentation, as well as possible downstream effects that would need to be clearly communicated without causing breaking changes. I still think it's worth being conscious of the words we use, and rather than looking at it as a "us vs them" political game, as a way to introspect and reflect on how we use words, and what they communicate. Falling back on "it's how we always did it" is a cop out, but if you're the maintainer of a project, it's up to you if you want to do that or not, and I don't think it's worthwhile for a community to harass someone for their decision, antirez was pretty open about this all.

> I'll add another point: if the reason to not do this is the effort, then why is effort being put into generative art in redis?

Seemed to me like it was a subtle middle finger to the complainers.

I’d be surprised if that was true, but that’s an interesting thing to consider.

Given that generating discomfort is a very low-effort endeavor, and no discernable skill besides having lots of free time is required for it, if there are people who want to generate discomfort, they will always be able to generate enough to overcome any boundary.

Since people don't like discomfort, squeaky wheel gets the grease, even if the squeaky wheel represents only a tiny minority of the community, because other people are not interested in wasting time and emotional energy on arguing and being target of the outrage-of-the-day mobs.

That's an excellent heuristic when the people doing the work are also the people experiencing discomfort! Each person so affected can make their own decision from ample firsthand information.

It might become more subtle in scenarios where the two are disjoint groups, raising the question of how to compare them. I don't see an easy way of quantifying each that allows for such, but I'm sure that's just my own failures of imagination. Can you help me?

Why didn't the community open a PR against the repo?

The contribution guidelines for Redis require that the change is discussed before you submit a patch for it.

I didn't know that, thanks for the information. Was it done?


Where did the computer people get the term from?

Probably from engineering in the 30s/40s, I'd bet. Say you had two gun turrets with servos, and used a synchro slaved to another synchro to have one track whatever the other was pointing at.

It's pretty obvious terminology for systems that don't support dynamic hierarchy changes.

EDIT: Consulting some docs from the time ( http://www.eugeneleeslover.com/USNAVY/CHAPTER-10-D.html ), this may not be the case. I'm genuinely curious now.

I would guess earlier, probably back in the days of steam. Master / slave cylinder is commonly used in hydraulics.

Right, I guess my point is, where does the term originate, really?

And I'm pretty sure it originates in slavery. (Glad to be wrong on that if there's any experts around)

The term master does have origins in the latin word "magister" (teacher, leader, chief or someone with a license to each philosophy or liberal arts). The middle english form, maister, was not connected to slavery either, it was more about someone of authority (ie, lord, ruler).

A lot of times it's use similarly like "Master Clock". The term in technology is strongly connected to that root; the master in a protocol is the leading participant.

I think simply not using "slave" for the passive or accepting device would be sufficient to reduce the problem since that is the word that has even in the deeper roots of it's origin the same meaning as today. (Slave comes from Slav, a group of people enslaved in the medieval ages and later expanded to cover all "slavs")

For a current project I'm using master/client as terminology.

It's easier than being skilled enough to contribute code or write good software.

This is the future we chose. :(

I think it's sad this was a debate at all. As a maintainer, there is some responsibility to respond to people who are working with you or using your product.

On the other hand, personally I would have just said: "deal with it".

The fact of the matter is, virtually no one has been or is a slave, no one is being mocked, no one is being belittled, it's a term used to describe a system. Sure, it could be more "politically correct" (I use master and worker, personally) - however, if I inherited or was working on a code base. I would not have been as open to changing terminology as this guy.

As he put it, we are there to program.

If it doesn't enhance readability, speed, etc. it's not changing - stop wasting my time. As a "computer scientist" we should try to be objective about terms, and build forward. That means, potentially changing that terminology for the future, but also not being emotionally attached to the terms which are not intended to be subversive, subjective, etc.

We live in a society, people are going to use the term "slave" to describe things, people are going to say things you don't like, use terms you don't enjoy. I hate acronyms, I find that it is a way to segment a society or group into those who know them and those who don't. Even the term "LOLWUT", means you need to understand the term "LOL" and where "WUT" comes from.

... And that's my point, as a society, I shouldn't be pushing my preferences onto you. I should be learning to deal with my own emotions and understanding. If it's something that impacts my freedom, then maybe I should bring it up. Calling something a "slave" doesn't mean it impacts your freedom.

> The fact of the matter is, virtually no one has been or is a slave

why do you believe that?

I think it's supposed to mean: "virtually _no one alive_ has been.."

That's a pretty strange thing to believe as well.

One source puts the number of humans alive in 2016 that have been or are currently slaves by some definition at 40.3 million.


> If it doesn't enhance readability, speed, etc.

I disagree. Having terminology that is clear (which master/slave is not) decreases the time needed to spend to get an understanding of whatever it is you're working on.

Also related, if someone is offended by terminology then that will slow down their progress in understanding because they first have to process those feelings in order to continue.

Master/Slave is clearly defined in any sort of systems programming. You're taught it in school, there's a wikipedia page:


Don't give me that - also as a maintainer, I wouldn't want to work with people who slow me down on terminology issues (when they feel offended, for industry standard terms).

But he didn't get rid of the 'master' terminology, only slave. I bet "they" come for that next. I feel sorry for the guy.

I think the idea of "master" as in a definitive or original copy has enough usage that it's considered a second meaning of the word. I guess it's still possible that people will be upset, but without "slave", it's not unreasonable to assume that people will think of a key or album master instead of a slaver.

Is master/slave even a proper term to begin with? If we approach it from a "human slavery" standpoint, the master directs slaves to perform tasks that the master does not itself perform.

Master/replica makes sense to me in the context of copies that all perform the same function, including the master.

Even that doesn't quite fit, I think. It makes sense for Redis, but in a lot of other master/slave topologies, what's actually happening is that 1. a group is electing a leader; 2. the leader says what is happening; and then 3. everyone (including the leader) all does what the leader said, concurrently.

I feel like there is probably an exact term for this arrangement, from another discipline. Maybe choreography?

• There are principal dancers and back-up dancers. People performing the same action are dancing in unison.

• There are cheerleading captains and their squads, which consist of the roles of base, flyer, and spotter. Interestingly, being captain (giving orders) is disjoint from a member's performative role within the squad; a member of any role could also be the captain.

• There are operatic prima donnas (or primo uomos)—the lead singers—and a chorus, though these are not mirrored.

• Orchestral organization has tons of different roles: the orchestral ensemble composed of players; their conductor; the principal of each section; the concertmaster (the principal of the section leading the melody of the piece, usually the first violin section.) You can also speak of accompaniment.

Interestingly, most of these disciplines lack a term for "everyone of a group being led, besides the leader." I would assume that this is because the leader is taking part in the group, and so there is no explicit action taken by the group-minus-the-lead, only actions taken by the lead or taken by the group as a whole. (On the other hand, for machines, it is useful to talk about the process of following the lead's... lead. Humans generally do this implicitly, and don't really refer to it as an explicit action they're undertaking, separately from the actions that they're mirroring.)

Now this is the kind of argument that could actually persuade any remaining holdouts. It's not bad terminology because it's offensive but because it's inaccurate!

Personally I wasn't-necessarily-a hold out, rather dispassionately observing from the sidelines but I'll admit that approach to the descriptors made me subtly. It makes the most sense, and much more accurately defines the mechanisms involved.

antireZ...that's just awesome. Thanks for restoring my faith in the hacking mentality once again.

Even cooler apropos of the stuff he alludes to on Twitter last week.

Ah, hackers, we are getting lost inside capitalism - inside startups - inside e-commerce and social media... I am not talking about socialism or leftism, we can get lost in those too - I am talking about 'personal'/'hobbyist'/'obscure' - like we see in zine sites like whimsy.space or the rabbit hole of sites like philosopher.life.

A part of our humanity will always be in 'obfuscation'/'code golf', demoscene, abandonware, easter eggs, the humble quine, dot plan files, muds, the icfp contest. Could the preservation of 'fun' and 'sheer fun' be above these other conflicts? If ai destroys humanity, it will definitely do well to start with the 'fun'.

you, uh, got any more of them philosopher.life sites? H0p3's wiki combines three of my favourites things: function over form art, Jungian reasoning and the (true) hacker ethos of unbounded individual exploration. I've always wanted to be a part of a community following those ideals or the underlying unifier between them (cicada 3301 exemplified this mentality too; lesswrong seems interesting but I get the impression of it being "too" rational to the point of being detached) but I have no idea where to find them (or even what to look for).

You'll need to read deeper into h0p3's wiki to find what you're looking for. A good start is here: https://philosopher.life/#Find%20the%20Others and on his pages title "Link Log". Hopefully we will see something at sphygm.us soon.

I hope this late reply finds you, beaconstudios.

It does, thank you!

I was deeply involved in hacker culture in my teens and, while I can't describe what "it" is, I really rather miss it. Your mentioning the demoscene reminded me of how their community reminded me of the same. A few other subcultures I've encountered echoes of on the internet too. I've been reading a few of h0p3's posts over the last few days so hopefully I'll find some pointers.

This is so deep that I'll have to take care not to get nitrogen poisoning coming back up.

Apologies for being heavy-handed. Sometimes this happens.

Preach it!

Love your work - mind fielding some questions over e-mail or sth?

Sure thing, my email is in my profile. As much as I love toiling in obscurity I actually enjoy much more when people notice :)

"we are very far from the first hackers in the 60s. As I get older I find that it is harder and harder to talk about technology with an hacking perspective, where there are no walls or pre-cooked ideas, and the limit is the exploration."

Lol I like how this guy thinks 60's hackers didn't have an ideology.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact