# Argument techniques for bit-twiddling

**URL:** https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352
**Category:** Offtopic
**Created:** [January 13, 2018, 5:07am UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352 "2018-01-13T05:07:20Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)
#### Post date: [January 13, 2018, 5:07am UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/1 "2018-01-13T05:07:20Z")

</div>

> [@A Plea for Bit-Twiddlers! (please keep ! as logical negation, separate from bitwise negation!)](https://discourse.julialang.org/t/a-plea-for-bit-twiddlers-please-keep-as-logical-negation-separate-from-bitwise-negation/8297/40):
>
> That seems very Julian to me.

You keep saying that this or that is or isn’t Julian. You may want to consider a somewhat different tack when arguing with Jeff, who, by the way, never uses this as an argument. It’s a flimsy argument to begin with and not one you really have the bonafides to make, especially given who you’re arguing with.

---

<div class="post-metadata">

### Author: ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)
#### Post date: [January 13, 2018, 11:13am UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/2 "2018-01-13T11:13:10Z")

</div>

What??? I wasn’t arguing with anybody, let alone Jeff. I was expressing my own opinion about a comment that @ggggggggg made. Please stop making inflammatory comments, Stefan.

Jeff actually seemed supportive of using `!` generically, and showed a nice way of doing it locally, just for my own code.

---

<div class="post-metadata">

### Author: ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)
#### Post date: [January 13, 2018, 1:14pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/3 "2018-01-13T13:14:27Z")

</div>

> [@A Plea for Bit-Twiddlers! (please keep ! as logical negation, separate from bitwise negation!)](https://discourse.julialang.org/t/a-plea-for-bit-twiddlers-please-keep-as-logical-negation-separate-from-bitwise-negation/8297/41):
>
> It’s a flimsy argument to begin with and not one you really have the bonafides to make, especially given who you’re arguing with.

As a steward, I would think you’d be careful not to violate the code of conduct for NumFocus projects, such as Julia.

> Personal attacks  
> Trolling or insulting/derogatory comments

These constant personal attacks and derogatory statements hurt the entire community.  
Note the following:

> By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.

I feel you (again!) owe me a public apology.

---

<div class="post-metadata">

### Author: ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)
#### Post date: [January 13, 2018, 8:23pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/4 "2018-01-13T20:23:48Z")

</div>



---

<div class="post-metadata">

### Author: ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)
#### Post date: [January 13, 2018, 8:26pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/5 "2018-01-13T20:26:34Z")

</div>

I’ve split this thread off from the main discussion and unlisted it; argument techniques and responses to them are entirely off topic from the main thread.

@StefanKarpinski — please discuss _how_ to make arguments to members privately.

@ScottPJones — if _you_ feel offense from how someone states things, please let them (and/or moderators or other stewards) about it directly.

Personally, I see the word “Julian” as dictated by the community as a whole. No one person has bonafides to unilaterally declare something as such.

---

<div class="post-metadata">

### Author: ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)
#### Post date: [January 13, 2018, 8:31pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/6 "2018-01-13T20:31:04Z")

</div>

> [@mbauman](#):
>
> @ScottPJones — if you feel offense from how someone states things, please let them (and/or moderators or other stewards) about it directly.

I’ve done so, ad nauseum, and nothing has been done about it, as a number of other members of the community have noted.

What other option do I have than respond publicly to public attacks, when the stewards have not been able to prevent it from occuring, after my repeated requests that something be done about it?

> [@mbauman](#):
>
> Personally, I see the word “Julian” as dictated by the community as a whole. No one person has bonafides to unilaterally declare something as such.

Yeah! 👍

I was also clear that I was stating _my own opinion_ that using something generically was Julian, not saying that something was or wasn’t “Julian”.

---

<div class="post-metadata">

### Author: ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)
#### Post date: [January 13, 2018, 8:40pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/7 "2018-01-13T20:40:58Z")

</div>

It is not an insult to suggest that a person may be less qualified that Jeff to determine what is or isn’t Julian. I would consider myself less qualified to make such claims, for example.

Fundamentally, saying that something is or isn’t Julian when discussing a matter of language design simply is not a good argument because it’s a circular one. There was no such thing as “Julian” or “not Julian” until we invented the language. We are collectively in the process of deciding what “Julian” means, so making the argument that we should do something because it’s Julian isn’t helpful because it’s tautological. When you make this claim in language design issues, you are making what sounds like a statement of fact which is really just an opinion with a false veneer of objectivity. Statements of opinion are fine and worth considering, but they should be presented as such, not as if they are objective judgements.

There are valid ways to use the adjective “Julian”, but they mostly have to do with discussions of how to use the language, not in debates about design of the language itself.

---

<div class="post-metadata">

### Author: ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)
#### Post date: [January 13, 2018, 8:44pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/8 "2018-01-13T20:44:28Z")

</div>

> [@StefanKarpinski](#):
>
> Statements of opinion are fine and worth considering, but they should be presented as such, not as if they are objective judgements.

You should have read what I actually wrote then, because that is _exactly_ what I did.  
You tried to make it sound like I’d done otherwise, and that is what I feel you should apologize for.

You have constantly misrepresented all sorts of things, such as my motivations, my ideas, and what I’ve been responsible for.

---

<div class="post-metadata">

### Author: ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)
#### Post date: [January 13, 2018, 9:23pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/9 "2018-01-13T21:23:38Z")

</div>

Scott, I can completely understand your reading of Stefan’s first post here and can see how it reads as belittling. I can also see that post in a different light. I can see him pointing you away from arguments that aren’t effective or persuasive to him. Extrapolate from that — it means that he wants you to make effective and persuasive arguments about the language in the future.

In general, I try to read each and every message with a strong assumption of good faith in the person behind the keyboard. The misrepresentations can go both ways.

Demands for apologies are rarely effective. Even if a person capitulates and apologizes, will you feel that it’s sincere after you demanded it out of their mouth? Much more effective is stating precisely how a post makes _you_ feel personally. Simply saying that a statement is offensive or bad for the community doesn’t get the person to understand how it felt to you — they may be still seeing it from their vantage point and don’t even understand how it could be taken otherwise.

Now, I’m going to go enjoy my three-day weekend and keep my mind focused on why we have the day off on Monday.

---

<div class="post-metadata">

### Author: ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)
#### Post date: [January 13, 2018, 9:27pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/10 "2018-01-13T21:27:11Z")

</div>

> [@mbauman](#):
>
> Now, I’m going to go enjoy my three-day weekend and keep my mind focused on why we have the day off on Monday.

👍 💯

---

<div class="post-metadata">

### Author: ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)
#### Post date: [January 13, 2018, 9:34pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/11 "2018-01-13T21:34:37Z")

</div>

> [@mbauman](#):
>
> I can see him pointing you away from arguments that aren’t effective or persuasive to him.

That’s not the part that really bothers me, nor the part that seemed rather belittling.  
What I feel he should have apologized for is the false statement that I had something “was not Julian” or “was Julian”, I clearly stated that it was my _opinion_, not that I was an arbiter on what is or is not Julian.  
The problem is, people may read his comments, and come away with a totally false view of what happened.

(This happened to me a couple of years ago with Kristoffer, when he started complaining that I’d said something which I had not [it was actually mauro!], about creating sparse arrays, and then Stefan also piled on, and made several derogatory statements)

---

<div class="post-metadata">

### Author: ![John\_Gibson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/john_gibson/32/5321_2.png) [@John\_Gibson](https://discourse.julialang.org/u/John_Gibson)
#### Post date: [January 13, 2018, 10:13pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/12 "2018-01-13T22:13:32Z")

</div>

I think the best strategy for these discussions is to focus on the technical issues, be as pleasant as possible, give the most generous possible interpretation of others’ statements, and, when one starts to feel indignant, take a deep breath, let it pass, and refocus on the technical issues. Even if someones calls you out personally in a way you think is unfair, just let it pass. De-escalate rather than escalate at all times.

Julia is a fantastic effort, and the Julia community is one of the most positive, cooperative, and supportive communities I’ve ever been involved in. I feel like we all need to do our part to keep it that way. If it requires a little sacrifice of one’s ego, it’s totally worth it.

---

<div class="post-metadata">

### Author: ![NaOH](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/naoh/32/5632_2.png) [@NaOH](https://discourse.julialang.org/u/NaOH)
#### Post date: [January 14, 2018, 2:53pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/13 "2018-01-14T14:53:38Z")

</div>

> [@John\_Gibson](#):
>
> Even if someones calls you out personally in a way you think is unfair, just let it pass. De-escalate rather than escalate **at all times**.

At what times would you consider it’s time to escalate then? Because surely there must be a limit.

> [@John\_Gibson](#):
>
> If it requires a **little** sacrifice of one’s ego, it’s totally worth it.

Just a little seems fine, but when would you consider enough is enough then? After _n_ times?

What if this someone is a steward and he does this constantly and there is **evidence** of that?

I would expect that if **any** person continues with that behavior towards **anyone** , even after being warned by the community and stewards, that they should be banned (temporarily imposed by Julia admins in response to the urgent situation, but shall be followed by a formal investigation by the other stewards if the ban is to continue) from contributing to Julia public forums (e.g. mailing lists and GitHub pages), until the offender acknowledges his/her past violations and provides a written plan to avoid such violations in the future.

* * *

> [@StefanKarpinski](#):
>
> Statements of opinion are fine and worth considering, but they should be presented as such, not as if they are objective judgements.

Makes sense, what doesn’t makes sense is that, that was your answer for:

> That seems very Julian **to me.**

(⚠ **personal opinion** ahead!)

So no, it doesn’t make any sense **to me** , at all.

* * *

> Long-term bans shall only be undertaken in response to the recommendations of a formal investigation by the Julia stewards as described above. (A temporary ban may be imposed by Julia admins in response to an urgent situation, but shall be followed by a formal investigation if the ban is to continue.)

How would one of this **private and confidential** (stewards only) investigations would work against a steward of an **open source and open community** project? 😕

> **The committee shall provide a private written report detailing its findings and recommendations to the stewards, complainant, and respondent.** If a violation has been found, recommendations may include bans and other alterations of online privileges, or in less severe cases may request apologies and other informal resolutions.

I wonder if @ScottPJones can get access to the written report against him, if it really exists (because it’s private just to protect **him** during the process, am I right?)

I don’t like this drama at all, but it pains me, I agree to let go (this time) for the good of the community, but at some point this has to stop.

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [January 14, 2018, 3:04pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/14 "2018-01-14T15:04:13Z")

</div>

Welcome back!

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [January 14, 2018, 3:09pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/15 "2018-01-14T15:09:17Z")

</div>

> [@Ismael-VC](#):
>
> Just a little seems fine, but when would you consider enough is enough then? After n times?

After ∞ times (never). It is like a shouting match over a traffic dispute. Chances that it would accomplish anything are very low, while it is wasting time and sapping energy. You just extract yourself from the situation and move on.

This is just general advice though, I am not implying that there is anything I would find even mildly offensive about the particular comment.

---

<div class="post-metadata">

### Author: ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)
#### Post date: [January 14, 2018, 3:20pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/16 "2018-01-14T15:20:52Z")

</div>

> [@Ismael-VC](#):
>
> I wonder if @ScottPJones can get access to the written report against him, if it really exists (because it’s private just to protect him during the process, am I right?)

There was never a written report against _me_, AFAIK.  
I was never given the opportunity to defend myself, this procedure was created at the request of NumFocus,  
but was not used to address the ban against me by Stefan.

There is a written report against Stefan, stemming from my complaint to NumFocus, but I cannot divulge that, because of the request for confidentiality by the stewards.

However, the result of that complaint _is_ public.  
He was at least required to make a public apology for this comment:

> <https://github.com/quinnj/Strings.jl/commit/20e0612da8c958719b9a838b6e0fdf0bf7a1115b#commitcomment-11661809>

> Could you possibly write a single comment without being a dick?

I’ve had to put up with this sort of constant public harassment and false statements about things I’ve said.

> When you’re spouting a stream of nonsense here,

and

> This is not the Scott P Jones show.

It’s a non-stop barrage.

---

<div class="post-metadata">

### Author: ![John\_Gibson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/john_gibson/32/5321_2.png) [@John\_Gibson](https://discourse.julialang.org/u/John_Gibson)
#### Post date: [January 14, 2018, 4:07pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/17 "2018-01-14T16:07:28Z")

</div>

I really do mean de-escalate at all times. If you feel like someone’s starting to get personal in a discussion, just ignore it and respond on the merit of the technical points. If there’s no technical point, just a diatribe against you, ignore it, or if you must, respond generously and dispassionately towards ending the personal stuff and getting back on a productive track. “I understand what you’ve said, but I think it would be better if we just focused resolving the issue of whether foo equals bar.”

If this has happened N times and it starts again, respond like this the (N+1)-th time. People will see that you are the reasonable one and the other guy’s a hot-head. If N gets so large you just can’t take it any more, walk away. Fork the project if you must.

I also feel those of us who are not on the core Julia team have to respect that Julia Computing makes the final call on design decisions and what gets merged. They might make the wrong call at times, but it’s their call and the rest of us have to accept that. If it gets so bad you can’t stand it any more, fork the project.

And about past history, old beefs, who said what, just let it go. People get heated and say things they regret. I know I have. It’s better to forgive, forget, and move on to more productive matters.

---

<div class="post-metadata">

### Author: ![Liso](https://avatars.discourse-cdn.com/v4/letter/l/898d66/32.png) [@Liso](https://discourse.julialang.org/u/Liso)
#### Post date: [January 14, 2018, 5:18pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/18 "2018-01-14T17:18:50Z")

</div>

> [@John\_Gibson](#):
>
> If you feel like someone’s starting to get personal in a discussion, just ignore it and respond on the merit of the technical points.

What technical points are you talking about?

> [@John\_Gibson](#):
>
> … , walk away.

foo or bar?

> [@John\_Gibson](#):
>
> It’s better to forgive, forget, and move on to more productive matters.

I could not agree more!

Sometimes productive matter is to start talking ( **like you** ) about forgivness instead of more technical `foo and bar` - right?

Means sometimes (maybe not now) it could be good to talk about some mistakes which could harm community…

---

<div class="post-metadata">

### Author: ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)
#### Post date: [January 14, 2018, 5:44pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/19 "2018-01-14T17:44:05Z")

</div>



---

<div class="post-metadata">

### Author: ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)
#### Post date: [January 16, 2018, 2:56pm UTC](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352/21 "2018-01-16T14:56:57Z")

</div>



[Next page](https://discourse.julialang.org/t/argument-techniques-for-bit-twiddling/8352.md?page=2)
