EmbroidePy / pyembroidery

pyembroidery library for reading and writing a variety of embroidery formats.
MIT License
181 stars 33 forks source link

InkStitch Affair (Posterity Record) #1

Open tatarize opened 5 years ago

tatarize commented 5 years ago

I got banned from InkStitch.

Relevant CoC: https://www.contributor-covenant.org/version/1/4/code-of-conduct.html


Lex commented:

I do think there's a clear need for both a stitch count and the ability to move back and forth more precisely in the timeline. The way the simulator is implemented right now, going backward is... not so easy. I think we can do this perhaps by having it take snapshots every X stitches so that it can go back to a previous state, but it may be awhile before we get a chance to implement it.


I replied:

@lexelby

I don't believe that the code is correct if it cannot instantly display the rendering. I'm guessing you're rendering the stuff to a display image or something weird. That is, if you're thinking about snapshots or whatnot. It must be broken in a very slow way. -- I'll add my 'ever-so-helpful-2-cents'... you're doing it wrong. I implemented a timeline stitch simulator for android which is way less powerful than most desktop info and it works seemlessly forward and backwards. From the times I've looked at the stitch simulator, it's pretty clear that flickers a lot between frames and I gotta suggest that the slowness there is not a requirement. As for the processing I coded up a jfiddle to do this to demonstrate the manner.

https://jsfiddle.net/Tatarize/0bdpuonL/

Drop on an exported CSV and it'll process the generated SVG to add and remove the stitches (note, no attempt is made to make this not suck, it literally regenerates the entire SVG each tick). For ww's sake the info button will give the exact stitch it is currently at, and I made it go forwards and backwards for show. The seek bar is also generally for show, but I couldn't really get it to hook up right.


Lex Replied:

you're doing it wrong

Not helpful and not tactful.

Obviously I'd like to be able to support going forward and backward. The fact that I haven't done it should suggest to you that it's not easy or I'd have done it already. In this case what you aren't taking into account is that the simulator is not a web browser and it can't just render SVG.

Please remember to keep your comments in this community tactful. We have a code of conduct and it's important that we all try to work together in a spirit of cooperation and not competition. For example, in this case, if you suspected I was doing it wrong, a more tactful way to express this would be to ask questions about how it works currently.


I replied:

In this case what you aren't taking into account is that the simulator is not a web browser and it can't just render SVG.

It could be. I mean the print preview is an a web browser rendering an SVG. I hacked up a simulator that will also give @wwderw the exact actual stitch number in a couple hours.

But, it's also clear that there's something wrong at the core with how you're doing this if you cannot do this instantly and in real time. There's no software package today that couldn't render that stuff in real time. The flicker, for example, is because the canvas is erasing the background and redrawing it. You catch that and stop it from wasting that time (self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnErase)) in that giant flicker and you're telling me that passing the paint routine a subset of points cannot be real time?

I swear I've messed with various canvases from rendering my own by implementing Bresenham's line drawing and Wu's algorithms directly on bitmaps and android and little javascript canvases both Canvas and SVG. They can all draw a large set of lines quite rapidly when you hand them the lines. There is nothing that should be faster about running it by inefficiently implementing svg changes (by deleting the entire svg and recreating it each tick) in javascript in a web browser that should be faster than a pretty raw rendered windows.

My comment there is honest, this cannot be correctly done. There's some rather easy and fundamental flaw that, when identified and rectified will make everything significantly better. If you can't do this thing, you must be doing it wrong. Find that bug and you suppose things like snapshots going backwards or something. wx cannot possibly be that slow, it has double buffering and GL.


Lex Replied:

I'm going to tell you again: the way you're going about talking about this is offensive and I need you to stop. This is not a competition and you don't need to prove that I'm doing it wrong. I need you to assume good intent and skill on my part and assume that if I haven't done it the way you're saying, there is probably a good reason for that. Approach the conversation on that footing. I've already given suggestions about how to get across what you're saying without being offensive.

If you say "you're doing it wrong" or similar again, I will temporarily suspended your commenting privileges. This is your last warning. Please understand that I appreciate the contributions that you've made to our project but I can't allow behavior like this to continue.


(3 hours later) I replied:

You are not your code. I am not at all making any personal comments about you. I categorically do not mean "doing it wrong" to be a pejorative. I do stuff wrong all the time. I mean to say that what you are saying should not actually be the case. I would never speak ill of you or anybody here, I do not make personal comments about people. My comment should not be construed as doing that. It was not my intent to be offensive. It's not intended as a pejorative. I'm not trying to one-up you are make some kind of dig at you or your code. I'm telling you that, with considerable expertise in a lot of canvas technologies, it categorically must be the case that it can do that. There's no canvas technology today that could should be unable to do this.

Here I'll prove it.

[EDITED TO REMOVE CODE WITHOUT LICENSE]

Attached you'll find a standalone python script (requires pyembroidery, wx), a nice little PES file, and in a directory go ahead and run the script with that file. You'll get the same a wx window that will (with some flickering), run the simulation backwards and unstitch everything and do so in real time without any caching (adapted from https://wiki.wxpython.org/DoubleBufferedDrawing ). It must be doable if I can do it. So when you say it can't be done that way you ***.


I replied, again:

Here, takes the example stitch as the default stitch. Gets rid of the flicker. Adds menu items to set Forwards and Backwards so you can switch them on the fly.

[EDITED TO REMOVE CODE WITHOUT LICENSE]


Lex replied,

@tatarize, I'm suspending your access to the Ink/Stitch organization for 1 week.

I warned you that saying "you're doing it wrong" or similar again would result in a suspension. Asterisks won't help you here; your intent was clear.

Our code of conduct contains the following items relevant to this discussion:

Being respectful of differing viewpoints and experiences Gracefully accepting constructive criticism Focusing on what is best for the community Showing empathy towards other community members

I'll add some responses to what you've said, but none of the following should be construed as an opportunity to appeal the decision to suspend you:

It was not my intent to be offensive.

Intent is irrelevant. I expressed the fact that I found your comments offensive and at that point empathy would suggest that you should stop whether you agree it is offensive or not. There was plenty of opportunity at that point to discuss better ways to communicate to avoid offense.

Here I'll prove it.

Being right is no excuse for rude behavior. I'll also remind you that our similar conversation regarding the fill algorithm (with similar offensive behavior) resulted in your discovery that your assumptions were incorrect.

So when you say it can't be done

I never said that it could not be done in my comment.

One final note: again, I appreciate your contributions to this community. However, I want it to be known that being a valued contributor does not excuse one from abiding by the code of conduct.

Please take the next week to consider what's happened here, as I will. If you decide to resume interaction in this community, I truly hope that we can converse in a way that avoids offense on either side. Let's try to work together to make that happen.

As a reminder, as per the code of conduct, if anyone would like to discuss this situation, please feel free to reach out to me at ***


I emailed:

The CoC is boilerplate anti-harassment. Not anti-'know a bunch of stuff and come off rather pompous'. Telling somebody they are wrong, when they are demonstratively wrong does come off as rather rude, but it's not personal harassment, doxing, or trolling. It's actually constructive.

The CoC doesn't actually say anything negative about making constructive criticisms. Rather it recommends accepting such criticisms gracefully. I've checked into wx enough to see how you were doing it wrong, more than just that you were. Being right does matter, so does providing helpful code that fixes the wrongness.

Your ability to be offended by criticism does not make criticism offensive. Things are not actually offensive just because you can be offended by them. None of it was intended at all as offensive. But, moreover, none of it was about you, it was about how you coded that section. Generally booting people for criticising your work doesn't seem like it's remarkably helpful. None of it was harassing, doxing, abuse, or anything else generally covered by any such Code of Conduct.

You might want to change the CoC from boilerplate anti-harassment to something more akin to don't criticise my work, even if you don't make ad hominem comments, and are right.

--

Though, do me a solid and send this (attached script) to wwderw, Or just throw toss it on pyembroidery as a pull request for him. It loads and saves, simulates forwards and backwards (realtime, no flicker), with pausing and restarting, has a seekbar that can do stitch by stitch incrementation. And has a stitch editor that uses the wx.grid to allow easy editing of all the stitch commands. He can right click, duplicate lines, delete lines, and change the stitch functions he needs to change And export it back again, without going through a csv file


Lex Emailed back:

I've extended your suspension to 30 days. It's irrelevant whether you think you violated the code of conduct. I told you something offended me and you continued


Lex Posted:

In the interest of full transparency:

I've extended the suspension to 30 days after receiving an email from tatarize containing another occurrence of "doing it wrong".

If anyone in the community objects to the way I've handled this situation, I'd really appreciate hearing your thoughts. You can reach out above or post here, whichever you prefer.


I emailed back:

The code of conduct is about calling people names based on their race or ethnicity, doxing them, or sexually harassing them. It is not a document about 'respec-ma-authorta' or being offended by constructive criticism. If you want to ban me because I pointed out that your code is flawed, you can do that. But, don't try to blame the code of conduct for that. It does not say whack people with a big stick when you think they are wrong, especially if they demonstrate they aren't wrong. And then insist they violated the rules that don't exist (given that the rules say you should accept criticism gracefully, and shouldn't insult people's gender or race). And extending such punishments further when they point out that they violated no rule.

Understand the things you find being irrelevant: 1) Not intending any insult. 2) Being correct about technical matters. 3) Not violating the code of conduct.

I do not see how working together constructively would actually work, if you ban me from any contributions for making constructive criticism and then cite the code of conduct that says 'accept constructive criticism gracefully' and extend the ban further when I point this out. I am generally inclined towards gracefully accepting and giving mea culpas. If you'd like to abide by your own CoC, do what's best for the community and accept constructive criticism, I'd be perfectly willing to accept that. If not, go ahead and modify pyembroidery to comment out .phb and .phc and .mit those formats have bugs and without an ability to contribute they likely won't be addressable.


Lex Posted:

Just in case anyone was tempted to use them, I've removed the code links from tatarize's posts above. They have no open source licenses attached and are therefore copyrighted works that we have no permission to use.


I emailed back:

"I've removed the code links from tatarize's posts above." -- Oh, yes, because goodness forbid anybody check and see that I'm right and your code is generally in bad form. Hence the need for suggesting the weird tricks that were obviously going to be pointless if it was done correctly. Also, copyright covers actual text in that particular order. The general outline of how to to do something correctly isn't copyrighted. Especially considering it's how everybody should render that frame. By, you know correctly, rendering frames rather than constructing it piecemeal like your code does for inexplicable reasons.

If you're going to censor the evidence that I was right, and got booted for making true, non-personal statements, could you at least add in a comment to that effect. I mean without the code showing I'm right, just a paragraph about how you got totally butt-hurt about how I said the way you were doing it couldn't possibly be correct and hacked together a fix to every problem in the script in an hour. Though the version there didn't include the fixes for the scaling which are pretty trivial but let your window be anysize and just scales the design to match (another advantage of correctly rendering frames, you can scale the entire design correctly, rather than only future stitches).


At this point started changing the code and sending a new version to pypi. That seemingly looks like a new and updated version.

https://pypi.org/project/pyembroidery2/


I posted (Full Disclosure, from a different account. This action is actually rather disreputable. I do feel some shame about that. But, I felt more umbridge.)

I'm guessing that ban will be permanent, given the pyembroidery theft

For the record, I would never in anyway mess with the project other than fix bugs. It was/is a labor of love.

Trying to steal it saddens me. I would only gracefully redirect the project to a different home, where I could again continue to contribute to my own project.

Making PyPi look like there's a newer version out there they should use instead seems generally unsavory. Rather than pyembroidery-inkstitch or a different name. You could simply integrate the pyembroidery code into inkstitch or freeze it at a particular version, without uploading somebody else's code to the index. Redirecting people to somewhere else, where issue cannot be resolved seems problematic.

https://pypi.org/project/pyembroidery2/

@kaalleen

What Lex was doing wrong was incrementally building an image by adding one line at a time. One might naively believe that is needed but it's not. GPUs are not CPUs you can send them everything you want them to do, all at once and they will implement that frame. One frame does not take longer than one frame, so long as you make the same number of GPU calls. And you can simply call DrawLines().

Properly done, you clear the image and send it all the lines simultaneously, having preprocessed the lines at the start. It goes much faster, you can get rid of the flicker, you can scale it on the fly (because each frame is independent) and scale it to the window, and you can run the simulator backwards and forwards. I also implemented a seekbar that works effectively. It's all MIT code, so you can just snip out the bits you need. I posted a properly working simulator with a bunch of GUI stuff (by the way use wxGlide to build a gui, rather than doing that by hand).

I'm more annoyed that censoring clearly MIT licensed code, might lead people to continue doing it the wrong way rather than fixing it. I know it needs to be censored because it shows I was right. But, please don't let the project suffer just to defend ego.

https://github.com/EmbroidePy/EmbroidePy will demonstrate the proper way to do those things. (Under MIT License)

@wwderw I'll make sure to add a sequin injector to the GUI, in a bit. Properly stitch simulation does kind of require iterating through the stitches at the stitch level, so there's no better way to do it than a raw-editing sequin injector code there.

The community code of conduct that says don't insult people's race, ethnicity, or sexual orientation, and to accept criticism gracefully. Not do not criticise people's implementations of things. It says do not be a bigot, not 'respec-ma-authorita' and don't point out when I've goofed.

I would recommend, going forward, that Lex needs to take criticism with more grace (as the CoC suggests). That your ability to be offended at true statements of facts, backed up with demonstrative evidence, with no intended insult or any discussion about you personally is not extremely helpful with regard to community building. Nor is banning people who disagree with you, a reasonable methodology to foster allowing a free exchange of ideas.

For what it's worth man, I forgive you.

I understand that people do take offense at non-offensive things, and they do not want to be wrong about things. ( https://www.youtube.com/watch?v=QleRgTBMX88 ). And once somebody digs their heels in, it's decidedly harder stop. I mean stealing my code and pretending its a newer version for anybody on PyPi is, ironically, the logical conclusion to somebody being correct, and then choosing that hill to die on.

I generally just never make personal comments about people. And work to be productive and helpful, so that if people want to ban me for whatever reasons they won't seem very good reasons. Also, generally I don't much care for threats as such and tend to think any community that would ban people for saying somebody was wrong when, they were, isn't worth the required kowtowing. I always act as if the rules in place are those of a productive open community (which is what the CoC actually is), and then ignore any claims to the contrary. So clearly, if an open community would accept reasonable evidence and truthful constructive criticism, I assume all communities do. Getting banned therefore says more about the community than myself.

You could stop. Not steal my code. Not ban me for saying you were wrong, and pointing out how you were wrong. Actually build an open community that gracefully accepts constructive criticism. You could actually just be a bigger man. I forgive you either way.

With love, Tatarize.


Lex Replied:

Of course the ban is permanent. Somewhere around your third or fourth increasingly harassing email, I gave up on trying to work this out in a reasonable fashion.

I'm not stealing your code. It's MIT licensed, and I left your copyright notice and your name on it. My goal was to allow Ink/Stitch to continue without my having to continue to interact with you. I get to choose when to draw the line and stop receiving abuse from you.

That said, since the current solution is upsetting to you I'll try to come up with something different.

As you can see, I've edited your comment to paraphrase it, as you've given up your right to an audience in this community. The full comment is available in edit history should anyone like to see it.

Goodbye, and I'm sorry you chose to end our collaboration in this way.


@tatarize was blocked due to repeated violations of several parts of the CoC. The triggering incident occurred in #267 (comment), although there had previously been a pattern of borderline-inappropriate comments in other issues.

His violations were in essence:


Please don't lie. I give you full permission to publish all my email here in full. If there's harassment in them, that should be properly judged. If you're going to call them harassing and abuse at least demonstrate that claim. Go ahead and publish them (in full) and demonstrate that fact. There was no reply to the 3rd email, and the 4th was in response to your actions to defame me. I feel, perhaps unjustly, that the truth is a valid defense and censoring the fact that I was, in fact, correct seemed to be defamation. To me it looks like I said, a duck is a duck. You took offense and insisted I should empathise with that offense. And I responded with, "but it's a duck" and got banned.

Again, the code of conduct is against fat shaming and being transphobic, it gives empathy as an example of a good behavior. It also gives gracefully accepting criticism as a good behavior.

It did not even occur to me that you could be serious. I cannot even find it in my person to be offended by having somebody point out an error. And, even now, I cannot empathise with that reaction, it doesn't even make logical sense to me. Finding out that I'm wrong about something is the only way I grow as an person. I welcome it. And demonstratively have a track record of overtly admitting to it without hesitation. I do not view it as some kind of competition. I do not view it as showing somebody is wrong makes me somehow better. It is, rather, the only way to grow as a person. I can only accept truthful constructive criticism with grace. So it did not compute that you might not be able to. And, that is, admittedly, an error on my part.

--

My objection to pyemboridery2 is that it represents that as a newer more official project, on the python index. Clearly if somebody looks for a python project that'll seem newer and with some major 2.0.0 overhaul, when the code is identical and or worse. There are clearly ways to keep the code in a maintainable, updatable form, without misrepresenting to would-be users. It's basically done and feels like you're trying to steal the thunder. Especially considering there's no need for any update. It isn't as if you waited until you needed to update something.

PS. I did find your flippant statement "Unless you have a barudan machine then your guess is as good as mine. Let's wait for his answer. " on the pull request #234 insulting. In part because I know the formats inside and out, and I spent a long time telling you explicitly that embroidery machines don't work like that and that they can't work like that, and how they actually work, and correctly parsing @wwderw's statements, and have coded for embroidery machines for more than a decade, and you equated my considerable expertise with a guess. It seemed rather discourteous and dismissive after I spent a long time trying to be helpful, by explicitly correcting that mistake. As if bringing it to your attention repeatedly was caused by dumb luck or a coin flip. And perhaps finally getting through to you, lured me into the false sense of security, that you could accept criticism. That maybe I had earned some understanding that when I say something can't be true, and that if you think it is, you must be doing it wrong, that maybe you might take my expert opinion into consideration rather than plead offense and break out the ban hammer because I had the audacity to demonstrate that I know how GPU accelerated canvases work and that your suggested understanding of their limitations, could not be true. -- You will find the same thing to be true when you switch over to 2-opt as well and away from your kludgy and slow present methods, you really are doing that wrong. And I mean no offense by that.

For what it's worth, it was fun while it lasted. I wish you the best. And if you'd ever reflect on the affair in the future, and see that your actions may not have been entirely appropriate, or even if you didn't, I'd be more than happy to contribute again.

tatarize commented 5 years ago

"there had previously been a pattern of borderline-inappropriate comments in other issues."

I believe this to be a reference to a long discussion on patterned stitches when I wrongly assumed he had a much weaker algorithm for fill stitches than he did. And when I corrected his understanding of how stop commands work in embroidery formats. And likely a discussion for how to improve his algorithm by transitioning away from the weird heuristics he uses and switching to using 2-opt.

I'm not entirely sure. But, he clearly find disagreement objectionable. But, suffice it to say I do not ever make inappropriate comments. None of them are of a personal or ad hom nature, ever. So whatever the reference here is, it was likely of the same vein. Helpful productive comments backed up by solid reasoning and expertise. That somehow were irksome.

tatarize commented 5 years ago

Inkstitch CoC thread:

This thread will serve as an archive of decisions made pursuant to the Code of Conduct.

As a reminder, anyone can report code of conduct violations to inkstitch-coc@lex.gd. I also welcome objections or discussions related to code of conduct decisions. You can post those here or via email, whichever you prefer.

In an ideal community, this thread wouldn't exist. Our goal is to make every effort to resolve disputes in a manner that does not require punitive action. However, it is also important to remember that no member of this community should feel it necessary to accept abusive conduct that violates the Code of Conduct in order to participate in Ink/Stitch.


@tatarize was blocked due to repeated violations of several parts of the CoC. The triggering incident occurred in #267 (comment), although there had previously been a pattern of borderline-inappropriate comments in other issues.

His violations were in essence:

Repeating (multiple times) an action that a member had expressed was upsetting. Using the phrase "you're doing it wrong" even after being warned. This violates the clause on showing empathy to other members of the community. This resulted in a 7-day suspension. Sending harassing emails to inkstitch-coc@lex.gd. This again included "doing it wrong". I replied asking that he please consider pausing for awhile before hitting reply, and asking if we could work things out in a reasonable manner after a break. This resulted in a 30-day suspension. Replying with increasingly offensive and harassing emails. This resulted in a permanent ban. After the above actions, @tatarize posted a final issue using a separate account: #271.


@kaalleen Collaborator kaalleen commented 2 days ago can't we just stop and calm down a little? i've got a bad feeling over this whole thing. that's not what we need at all.

i know, we cannot go back in time and every action from each of you seems to make things worse. we need to rethink the situation and do it better in future.

further accusations do not help at all. as for me... i was a little bit surprised when all this started, but i understand clearly why "doing it wrong" isn't helpful and long messages with very complicated content cause stress and are time consuming, when you are working on a completely different issue at the moment.

so, if we realize these two things we could conclude that expressing criticism isn't a bad ting at all, but it needs some rules. best way to express criticism, is to create a pull request or to give example code, which might point out a better solution (i am not saying that tartarize never did so). if someone is expressing to feel insulted of certain words, it is in any way a bad reaction to repeat them over and over again. it is not so difficult to change "you are doing it wrong" into a more helpful message. insisting on these words doesn't make a lot of sense.

i wanted to write a lot of words, explaining how each of you might see the situation. but i don't find the right words and i don't even think this would be helpful ... i actually don't want to put my energy into topics like this and they leave a very bitter taste in my mouth. but i would like to see, that we give it an other chance, if we can agree upon behaving respectfully to each other. this is what i feel is needed for our project.


@carolundy carolundy commented 2 days ago Yes, I think this whole issue is damaging the project, and will deter others from becoming involved. If someone expresses that they feel offended, that should be respected even if the "offender" does not feel that they were offensive. We are coming from different cultures and language backgrounds, and even our senses of humour vary. Sincerely Carol …


@X3msnake Collaborator X3msnake commented 2 days ago Was his python port of libembroidery part of the not open sourced code?

2018-08-12 23:35 GMT+01:00 carolundy notifications@github.com:


@lexelby Member

@kaalleen and @carolundy, thanks for sharing your thoughts. I sincerely appreciate your sharing how you feel about this. I'm sorry if anything I did made you feel uncomfortable to speak earlier.

I'll try to keep my reply brief, since I agree with @kaalleen's sentiment above: I also don't like putting my energy into this kind of thing, and I know it's distracted me from coding over the past few days.

I see in both of your replies a significant level of concern over the damage this kind of conflict can do to our community. I agree, and I'd like to keep things as conflict-free as possible in order to keep the project safe and inviting. I also feel that avoiding dealing with offensive behavior can have an insidious deterrent effect on contributions by implicitly stating that the behavior is acceptable. We must deal with it, and you're right -- how we do it is important and we should improve our process.

My hope is that, by responding to Code of Conduct violations consistently, we'll show potential contributors that Ink/Stitch is a safe community, and they'll be more likely to join.

I would invite your criticism on how I can handle this kind of situation better in the future. I tried to balance a desire to deal with it quickly and move on, with remaining as transparent as possible in my reasoning and the actions I was taking. Perhaps in the future, a less verbose approach would be better?

Regarding criticism: I invite and embrace it. In this case, for example, it looks like @tatarize may have shown us a much better way to implement the simulator than my original code, and for that I'm glad. For me, the conversation was never about avoiding criticism -- only refusing to accept rudeness and abusive language.

best way to express criticism, is to create a pull request or to give example code,

These are good ideas. I also want to make sure folks can provide constructive criticism without coding, since they may not have the time or expertise. Compassion, respect, and teamwork are all that matters.

but i would like to see, that we give it an other chance, if we can agree upon behaving respectfully to each other.

If @tatarize made a request for another chance, with an apology that indicated a clear understanding of what he did that hurt my feelings, then I wouldn't hesitate to remove the block. I value his contributions, and I would be willing to work hard in partnership with him to find a way that we can collaborate peacefully.

Without a request from him, I don't see any benefit in inviting him back. He showed no intention of working cooperatively to resolve the conflict, despite my multiple attempts to de-escalate. I described the problematic behavior and how I felt and gave him a script to follow that would avoid offense. He chose instead to repeat the behavior 5 times (two in the original thread, two by email with me, and once as @Pyembroidery). Several of my previous interactions with him have mirrored this pattern. I don't see any indication that, given another chance, he would choose to work with me to avoid offense.

In fact, he specifically told me by email that he wouldn't. After the initial suspension, he emailed me again to repeat that I had been "doing it wrong". My response was:

I've extended your suspension to 30 days.

It's irrelevant whether you think you violated the code of conduct. I told you something offended me and you continued to do it twice more (and now you've once again done it in this email), and that alone is unacceptable behavior whether or not the original action is "objectively offensive". Even if you think I shouldn't be offended, doing it again is not a helpful way to constructively resolve the situation.

Please, take a moment and pause before hitting the reply button. I'm sure we can work together constructively and come to an agreement on how we can both behave that involves no one being upset. You've made some valuable contributions and I'd like to work together to ensure that you can make future contributions without any conflict. It might be best if we take a break before resuming this conversation.

He replied a few hours later:

I do not see how working together constructively would actually work, if you ban me from any contributions for making constructive criticism and then cite the code of conduct that says 'accept constructive criticism gracefully' and extend the ban further when I point this out.

His emails became increasingly abusive and eventually I blocked him from my email.

I'm very sad that things went this way, and I still open the door to a genuine effort from him to reconcile, but I'm done with making a one-sided effort. I won't quietly accept more abuse in the name of trying to avoid conflict, and I don't feel anyone in this community (or any other) should do so either.


@lexelby Member lexelby commented a day ago Was his python port of libembroidery part of the not open sourced code?

pyembroidery is open source (MIT license), and he added it to the Ink/Stitch github organization a few weeks ago.


@lexelby Member lexelby commented a day ago I got this email from @tatarize at a different address:

"If @tatarize made a request for another chance, with an apology that indicated a clear understanding of what he did that hurt my feelings, then I wouldn't hesitate to remove the block."

Please give me another chance.

I am disheartened that I offended you. You found my claim that you "did it wrong" offensive and that repeating that claim was both equally offensive and showed a callous disregard for your feelings on the matter.

I've removed the block. If anyone feels like I'm too hasty in that, please let me know.


@tatarize What can we do differently to avoid this kind of conflict in the future?

@AkiraNorthstar Member AkiraNorthstar commented 23 hours ago We should do that together with @tatarize, but not in public. We should lock this conversation.

We only know the effects, or the result, what came out. Whether it was the tirade, the wording or even the increasing enforcement of his ideas.

Without wanting to protect him, maybe there is a trigger for his behavior. We do not know him in private. Maybe too much stress all at once: private, work, hobby, girlfriend, etc. Maybe he is not familiar with working in a team, who knows ...

No matter how or what, we should not overrun anything. I don't want to judge. It has not been so hard for me, I have to admit. I was neither personally attacked nor constantly attacked.

That's why my questions are here too: What was going on? How can we avoid this in the future?


@X3msnake Collaborator X3msnake commented 23 hours ago • I must add, risking being blocked myself, that i feel you @lexelby have been acting a bit on edge this last month. maybe you have been under some stress to or another thing that you should keep to yourself.

Your response to my humble questioning the other day would have resulted in similar conflict if i had not seen you were really upset about my inquiring, what made me promptly back-off was your mentioning that i was downplaying your thinking process or you. Now for that to be even remotely possible I would have to be at least at the same level of knowledge that you are when it comes to mathematics and programming. I was just brainstorming, trying to help as I have done in the past. Talking about things.

Your reaction was unexpected and it hurted my feelings too.


@lexelby Member lexelby commented 23 hours ago Thanks for telling me how you feel. You're not risking being blocked by sharing your feelings.

I'm sorry I upset you. I'll try to do better in the future. I tried to explain how I was feeling so that you'd know what was going on in my head, and I appreciate that you've done the same here. It's not easy to talk about one's feelings.

I'll try to be less on edge on the future. I have difficulty in situations where I've spent many hours working hard on a problem and someone casually suggests it's easy. I'll try to temper my response in such situations -- but I don't feel that such hurt feelings are unreasonable. I'm sorry that I hurt you with my reaction.


@lexelby Member lexelby commented 23 hours ago We should do that together with @tatarize, but not in public. We should lock this conversation.

We can do that if everyone else wants to, but I was actually hoping we could work things out in public (open-source-style). If we can manage to work this conflict out in a satisfactory way for all parties, that's a huge win for our community, and I think we should be proud of that.

Every community will have conflict. What matters is how you resolve it.


@AkiraNorthstar Member AkiraNorthstar commented 21 hours ago • Basically, I am also in favor of an open discussion, because it concerns everyone. We are all a part of something. But this is very personal when names and written paragraphs are quoted .... But no matter, that's not the point here.

How should one address misconduct in any way? Or rather, how do you show someone boundaries? Actually, there is only the word, so exhortation and subsequent threat of consequence. That means: you are banned! In forums, banishment is taken as the last instance, as here too. Every one of us has children, will know - how you feel after enforcing the consequence - I mean both sides. EDIT: It is not easy and should not be used lightly ...

Surely not everyone can do what he wants and irritate others to the bone.

What are the stages until it escalates? Actually, you can only point out that there are rules and if they are exceeded you are no longer a part of it ...

There is no nursery here, where you can be sent. What is the precursor of ban? - Yellow card like in soccer? And how do you do that?

I think that in such a situation it doesn't help to insist on CodeOfConduct.

With that I personally have the problem - to catch it.

In two or three responses I also had an adrenaline rush. It turned out then, that it was a translation mistake on my part. It is also sometimes the choice of words that causes misunderstandings and the personal mood flows in as well.

So you should not decide it alone (for yourself). Get another one, see if that's true. And if it is confirmed, then still a "neutral" person / member can still try to clarify.

joke on: Please do not ban me for my school English! joke off


@X3msnake X3msnake commented 21 hours ago i agree in open discussion. if all other parties agree.

@lex. i propose ppl tagging on edge like shrek did so that other know not to trespass. we all have our ogre moments and we should respect them. just other need to know :)

No dia segunda-feira, 13 de agosto de 2018, Lex Neva < notifications@github.com> escreveu:


@X3msnake Collaborator X3msnake commented 21 hours ago And i need to stop writing from my phone.

what i wrote before is borderline uninteligible. sorry

hope you guys get it. :)

No dia segunda-feira, 13 de agosto de 2018, Vinicius Silva < x3msnake@gmail.com> escreveu:


@lexelby Member lexelby commented 20 hours ago Open discussion, cool. Any other objectors?

I agree that banning and even threatening banning is the last resort. How I'd prefer we deal with conflict is for the aggrieved party to say how they feel. "When you said , I felt ". It's a great jumping-off point. Especially useful in a community with vastly different backgrounds and cultural norms as @carolundy and the rest of you have pointed out.

It puts one in a very vulnerable spot to state their feelings. As an alternative, anyone could raise it to inkstitch-coc@lex.gd, and I'd be happy to negotiate the situation on their behalf.

On the receiving end of someone explaining how your actions made them feel, the best is in the Code of Conduct: accept constructive criticism gracefully. Work together to resolve the hurt feelings and avoid them in the future. It's hard, but it's worth doing.

Though it may seem that I escalated quickly in this case, I only did so after my attempt to state my feelings didn't get us anywhere, and with an understanding that previous similar attempts in other conversations had also failed. Was my phrasing off? I'll try to stick to the template above in the future. In any case, a ban threat is pretty unlikely to be productive, so it's definitely is a last resort.

@tatarize I am sorry for quoting your private email to me here without permission. In the future, I'll ask first or paraphrase.


@AkiraNorthstar Member AkiraNorthstar commented 18 hours ago So let's face it, we are all human beings and we (and I mean all of us fellow readers and writers) have contributed our share. We did not point out any real limitations and also said something about the personal attacks ... I held back.

And please @lexelby do not carry this package alone! We all have a partial liability - We are all a part of Ink/Stitch!

We all felt the incident differently, but nevertheless we got the situation as far as it was readable. We must also learn to play our part in Interpersonal in Ink/Stitch and don't leave you alone with this situation. I apologize!

Do not hang your head and do not blame yourself!

Please excuse that I was so passive with this topic!

This will be a lesson to us and should spur us on doing it better.


@X3msnake Collaborator X3msnake commented 5 hours ago I make akira words my own in the sense that you are not alone here lex.

I'm sure we all pride ourselves to be part of this community and the work being developed here. That means we are here also to suport each other and help out clear divergencies and keep the group focused and unite.

No dia segunda-feira, 13 de agosto de 2018, AkiraNorthstar < notifications@github.com> escreveu:


@tatarize

tatarize commented 2 hours ago @AkiraNorthstar "Without wanting to protect him, maybe there is a trigger for his behavior. We do not know him in private. Maybe too much stress all at once: private, work, hobby, girlfriend, etc. Maybe he is not familiar with working in a team, who knows ...

I find this offensive. I understand the implications there. But understand I was banned for saying something was being done incorrectly on a technical issue. When this was found to be offensive. I attempted to rectify this by proving that it was actually being done incorrectly on a technical issue. Since the offense was caused by saying that something was being done incorrectly, attempting to prove that was deemed to be additionally offensive.

@kaalleen proposed solution "but it needs some rules. best way to express criticism, is to create a pull request or to give example code, which might point out a better solution". This is also something I find offensive. Clearly the error there is the same error I made. Attempting to prove the technical issue is simply reinforcing the the offense.

You must understand that the problem wasn't the criticism but the feelings resulting from the criticism. Neither truth nor my gentle, non-pejorative intent, matters there. If somebody expresses offense, at a provable fact, the idea that proving the fact will reduce the offense is in error.

@AkiraNorthstar "It has not been so hard for me, I have to admit. I was neither personally attacked nor constantly attacked."

I find this also to be offensive. In order to understand my offense, please go here and actually read all of my emails. EmbroidePy/pyembroidery#1 If I actually said something that was a personal attack. Please tell me. It is true that I did say he was wrong, a couple more times. Thus clearly increasing the offense. But I find the insinuation that anybody was "personally" attacked quite offensive.

I feel that the suggestion that I made personal attacks to be highly offensive.


@tatarize tatarize commented 2 hours ago @X3msnake "what made me promptly back-off was your mentioning that i was downplaying your thinking process or you. Now for that to be even remotely possible I would have to be at least at the same level of knowledge that you are when it comes to mathematics and programming."

That's was the problem in my case. The technical issue at play was to do with how canvases interact with GPUs and the traditional methodologies for rendering on canvases. GPUs can render video games of a millions of polygons so I found the insinuation that you couldn't just render it as a frame to be strange, and concluded that he must not be rendering frames, which is the best practice in that situation.

I took a quick look at the source code and saw that it was feeding the GPU one new line at a time, without erasing the canvas each tick, and proclaimed that to again be the "wrong way".

At this point he similarly said that I was downplaying his thinking processes and that "I'm going to tell you again: the way you're going about talking about this is offensive and I need you to stop. This is not a competition and you don't need to prove that I'm doing it wrong. I need you to assume good intent and skill on my part and assume that if I haven't done it the way you're saying, there is probably a good reason for that."

-- And that's where my experience with you differs @X3msnake, I could not make that assumption. I have more than 30 years of programming experience, literally have had a computer since pre-school and would program it. By middle-school my teacher gave out my code to the class when I fixed an error she had made with how to set a background color, and another bit where I implemented color animation on Apple IIes. The low-graphics mode of apple II are canvases. I tried to explain that I know them extremely well and possess considerable expertise on the subject. And assured him that I fully understand double-buffered gl canvases and not only implemented then on many devices and iterations but that I know the algorithms they run on. And doubled down insisting:

"I'm telling you that, with considerable expertise in a lot of canvas technologies, it categorically must be the case that it can do that. There's no canvas technology today that could should be unable to do this."

It was for those reasons, that I could not, as you did, expect that maybe he knew better than I did. When he asked me to follow a script where he asked that I should instead ask why he did it that way, I had at that point didn't feel I needed that information. I felt I understood why somebody might suppose that you could not ask a GPU to render half a million lines every 1/60th of a second. I already checked the source code, knew what the error was, taught myself wxPython and made a version that processed the data in frames, correcting the flicker issue. And that's why I was banned.

When I said he was doing that wrong. And he took offense. My response of insisting I knew what I was talking about and that I could fix the issue, and demonstrating a fix for the issue, was simply additional insults. It did nothing to address his feelings. I simply addressed the technical requirements with my considerable expertise without giving his feelings any consideration. When he says that I did that, he's right. I did that.

I didn't feel like there was a reason to back down. And none of my comments or behaviors there. But that did nothing to combat the offense he felt.


@tatarize

tatarize commented 2 hours ago I also felt great offense at being told I violated the Code of Conduct. I read it repeatedly and provided my interpretations of it.

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

I felt that being told this is what I violated was calling me a bigot. That I insulted people based on age, body size, disability, ethnicity, gender identity, etc. I also, felt, perhaps wrongly other please correct me if I am in error, that citing the "Examples of behavior that contributes to creating a positive environment include:" as if they were to be interpreted as hard and fast explicit rules was quite offense. While the example of a good thing to do is certainly a good thing to do, failing to do such a thing is not one of the inappropriate behaviors listed which are personal attacks, racism, doxing, trolling, sexual harassment etc.

I felt like it was being wished into the cornfield like in that episode of Twilight Zone where a kid with godlike powers insists that everybody must smile all the time.

I also felt that my comments constituted "constructive criticism". I was making a statement about a technical issue, providing a solution, and was more than happy to answer any and all questions. But, because I did not consider his feelings and was "Showing empathy towards other community members" as that was being taken as an explicit ban-worthy rule. I was offended that he didn't equally accept as an equal hard and fast rule that you should "Gracefully accepting constructive criticism."

This seemed to me to be hypocrisy and I was greatly offended by that. My constructive criticism caused offense, and I did not (and be clear here, I did not) show empathy to that offense. And was banned. I felt like this seemed to be a double standard. That I was expected to, at all times show empathy, while the reaction to constructive criticism was not graceful it was being banned.


@tatarize tatarize commented an hour ago • Furthermore, I was offended that I was my punishment was made more strict because of personal correspondence. After the incident, and Lex posted that if people wanted to discuss the matter or if they had any objections, I took that opportunity in what I believed to be good faith. You can read the email ( EmbroidePy/pyembroidery#1 ). I objected to what I believed to be valid points about what the code of conduct said.

I said, and please forgive any offense quoting this might cause but it needs to be done to explain my feelings and why I was offended here:

The CoC is boilerplate anti-harassment. Not anti-'know a bunch of stuff and come off rather pompous'. Telling somebody they are wrong, when they are demonstratively wrong does come off as rather rude, but it's not personal harassment, doxing, or trolling. It's actually constructive.

It was for this comment my punishment was quadrupled. I felt like, even if my statement was offensive that it could not harm the community. My objection there was not for public consumption, and I felt that extending my punishment for actions outside the community (this was not part of the group), and not conduct that seemed like it should be subject to punishment.

I felt like I was I was asked if this was unfair, to email. I emailed that yes, I felt that it was unfair, and my punishment was quadrupled for personal correspondence.


@AkiraNorthstar Member AkiraNorthstar commented just now @tatarize: Maybe I have expressed wrong. I just wanted to make it clear that there are different factors and some i pointed out. I didn't want to push you in any direction or insult you. There were and are theoretical possibilities. That doesn't mean that is a fact - or that I see you like that!

Implications do you - I don't do it.

@AkiraNorthstar "It has not been so hard for me, I have to admit."

And here, too, I have probably expressed myself wrong.

So if you didn't want to attack @lexelby personally, why does he feel that way? And why did that look like that? You should also see his side.

I read the whole time what was written here and you have (almost every topic) started over and over again with the same thing:

The conversion to an Ultimative (algorithm) solution ... This is "constantly attacked" for me!

And basically I don't care what, where, who and how someone wrote. We are not in a kindergarten and do not need a list of suspects.

Incidentally, I find it offensive to quote a sentence from a longer text. Thus, the whole sense is lost.

So I realize that you probably take everything on heart and give directly contra. A request would have cleared it up.

I'm not the super english writer, but I'm trying. Sorry for my old and rusty school english.

Each of you two felt something. And each one of you reacted in some way (for the other) wrongly.

And how can we solve this in the future so that it does not happen again? - For all here!

This has not been written here!

... And I'm gradually losing the desire to InkStitch with these discussions...


@tatarize tatarize commented just now I was offended that I felt like I was given no opportunity to defend myself. That the scripts, I had provided to say I was right. (Again, fully cognisant that truth or my innocent non-offensive intent do not mitigate my lack of compassion in my actions.) But, I felt, at the time that they demonstrated the technical point I was making was correct, and therefore my criticism was correct and therefore constructive. I felt that if people saw that I was not intending to be rude but intended to help that they would come to my side and agree with me.

I felt as if you removed my voice, and specifically were destroying things that may have made people come to my defence and say: "Look, I checked and these are great, it solves the problem completely." And in my head, they would point out that banning somebody while they were engaged in constructive criticism could not be useful for the free exchange of ideas. I was offended that rather than post my emails in full, you would paraphrase them and only post the parts that seemed like they defamed me.

This is also why @AkiraNorthstar comments are offensive to me. I feel like by only telling the people what you say I said, that it defamed me. He seems to be under the impression that I was making personal insults. This deeply saddens me. I said even prior to being banned that I never do such a thing. And trying to explain my behavior by supposing that I was having a wrong day or some personal trouble, seemed like it was because of the impressions given of my actual claims, rather than the claims themselves.

I was banned for being careless of Lex's feelings. I said that his implementation was wrong. When he took offense to this. I repeated the offense by insisting that that I had considerable expertise and knew what i was talking about. I was further warned that this was offensive and came back with implementations that would "prove" I knew what I was talking about, and provided those. This lead to me being banned. In neither case had I considered his feelings of offense. I objected to being banned in email. Because I felt that this wasn't gracefully accepting criticism or what was best for the project. Repeating again that I felt that his technical implementation was in error, but again with no regard for his feelings. --- However, I feel that Akira's perception of the incident is clouded by what I feel like was denying me my voice. I am offended that he feels that way, and I am offended that things like what I feel are selective out of context quotes to defame me, gave him that impression.

I pride myself on being a gentleman, and there was never an accusation that that I engaged in personal attacks. But, I feel that selective samples of things I wrote in order seemingly defame me (as I perceived them at the time)

Here's a specific example of something I found offensive.

I don't see any indication that, given another chance, he would choose to work with me to avoid offense. In fact, he specifically told me by email that he wouldn't.

The email you quoted was in a larger context. My claim that I could not see how that could work, was in regard to how you can, more broadly, have an open and working relationships as part of a group if constructive criticism is subject to banning. I wasn't stating that I would not work together again, I was making a broader statement about how the free exchange of ideas seems like it requires that the free exchange not be subject to banning if a person gets offended and the other person is instantly perceptive to that fact (which I was not) and the result is ban.

I had very specifically addressed that exact point in an email:

"For what it's worth, it was fun while it lasted. I wish you the best. And if you'd ever reflect on the affair in the future, and see that your actions may not have been entirely appropriate, or even if you didn't, I'd be more than happy to contribute again."

But, I feel that paraphrasing my words was in effect, a quite offensive attempt to deny me my words. That I felt like it was only using those words which you felt would make me seem worse rather than anything positive I said. I felt that the paraphrasing of these words as " stop receiving abuse from you" or "His emails became increasingly abusive" seemed like they were making a characterization of what I was trying to convey. That my emails were abuse in the sense of personal attacks, swearing, ungentlemanly conduct, rather than what I felt them to be, progressively more desperate calls to have my position at least empathized with.

It seemed like I was being presented as a unfairly in a place where I was not allowed to respond. That I felt like I had a reasonable case to be made, and denying me the ability to make it by trying to make it for me in ways that I did not felt did their merits justice.

I was offended that you posted that snippet of an email. Because firstly it was personal correspondence. And secondly because I had explicitly asked you not to. I said in my last email:

I give you full permission to publish all my email here in full. If there's harassment in them, that should be properly judged. If you're going to call them harassing and abuse at least demonstrate that claim. Go ahead and publish them (in full) and demonstrate that fact.

I am offended that, it may have fallen on deaf ears because you said, that you blocked me from email. Denying me my only channel to convey what I felt was unjustified.

I was careless with your feelings. I did not appreciate at the time the offense it caused you. I felt I could justify my statement by proving it true. I did not appreciate that because the offense was caused by my callous and rude claim of wrongness that proving it wrong would not remedy the matter, but rather it would exacerbate it.

I felt that my contributions far outweighed some small amount of perceived offense (my perception of that offense, I'm not trying to characterize it for you). That showing that this correction would greatly aid the project should forgive any sins made by pointing it out, while you were offended. I felt that even if you were offended that I said you were wrong, that it would be easily forgiven if weighed against the contribution thus far made to the project and the contributions being made by pointing out what I felt was a flaw, and demonstrating that fact. That if I could only make people see that by rendering the simulator in frames you could resize it on the fly, and provide very useful user interface, and get rid of the annoying flicker that people would see that and take my side. That is why paraphrasing my comments was so offensive. It excluded me from what I thought could rally people to my defense at what I felt was unfair treatment.

That is why I am offended that you would paraphrase my statements.

I am also offended that you made some kind of, what I perceived to be snide remark, "email from @tatarize at a different address" because as a practical matter you said you blocked my email. I am offended that you said I could apologize and and ask for another chance while also having already denied me every channel to make that apology. I could not post it here, I could not tag you to it, I could not email it to you from my main email address. If felt like you had denied me every channel of communication and then said, that it was completely on me to reach out and communicate but and give the implication that I was sinister or harbored ill intent if I did not. It was humiliating.

Lex would publish things like,

"He showed no intention of working cooperatively to resolve the conflict, despite my multiple attempts to de-escalate."

Give me no voice to tell my side perceptions and feelings. And defame me in contexts where I could not defend myself, my actions, or present what I felt were entirely reasonable arguments. I was offended by being cast as a villain in this when in my emails I repeatedly implored you to tell @wwderw that I made him a GUI embroidery editor that'll soon let him inject sequins at the stitch level with a GUI customly designed for him and his usecase. Or to tell @kaalleen how to render things as frames so that, even if I would never be able to contribute further that the project would not suffer. Without a voice I was cast as the villian, who would see no reason, and was sending more and more abusive content. I that offends me greatly.

I am an expert in computerized embroidery, I have programmed for more than a decade many embroidery programs and applications. It is a niche community. I've had long and productive conversations with wwderw and danielkschneider outside of this project and contributed to many other projects, and then to deny me any methods of portraying myself in a positive light I get portrayed in a sinister one. In front of my peers? In a small niche community where I have written and assisted on several major projects. Where I spent a month with my nose in a hex editor to make sure this one could be successful because there is a woeful need for good open source tools. I get made told that I am unreasonable, the problem, the one with no intention of trying to cooperate, and without any means to defend myself. I could not be more offended by that.


tatarize 2 days ago @AkiraNorthstar "So if you didn't want to attack @lexelby personally, why does he feel that way? And why did that look like that? You should also see his side."

I fear there may be a slight misunderstand here. When I say "personally" I mean an ad hominem attack (to the person). Making a statement about a person rather than their ideas, comments, actions, behaviors etc. There was no claim that I did this. During the actual incident in question I specifically said I had no intent of doing this.

You are not your code. I am not at all making any personal comments about you. I categorically do not mean "doing it wrong" to be a pejorative. I do stuff wrong all the time. I mean to say that what you are saying should not actually be the case. I would never speak ill of you or anybody here, I do not make personal comments about people. My comment should not be construed as doing that. It was not my intent to be offensive. It's not intended as a pejorative.

I bent over backwards to insure that nothing I was saying was being construed as a personal attack. I feel very strongly about this. I did not want anybody to think that I was making a personal attack. The conclusion was that that didn't matter.

Intent is irrelevant. I expressed the fact that I found your comments offensive and at that point empathy would suggest that you should stop whether you agree it is offensive or not.

So, @AkiraNorthstar, I already expressed I found your comments offensive. Whether you think they have merit or not, or whether you think you could argue a point about it seems to be irrelevant. I am to understand these are the rules, that you should stop. I expressed offense. But, you seem to continue saying things like "Incidentally, I find it offensive to quote a sentence from a longer text. Thus, the whole sense is lost." --- Truth does not matter. Your innocent intent does not matter. I expressed offense. You must stop. These are, apparently, the rules.

@lexelby Member Original Poster lexelby 2 days ago Thanks for sharing your feelings, @tatarize. There's a lot here, so I'm going to sit and think about how to respond for awhile and it may be a day or two before I'm ready.

As we work through this conflict, I will keep in mind, as I hope others will: our goal is to come out the other side with everyone feeling like their concerns are heard and with all members having a clear idea of how we can work together on Ink/Stitch while avoiding this kind of situation in the future. It's all about the team.

@AkiraNorthstar Member AkiraNorthstar 2 days ago @tatarize: we overlapped each other... Thanks for your detailed description / feelings. Now I can understand why my words made you feel that way. I'm really sorry! That was not my intention!

But, you seem to continue saying things like "Incidentally, I find it .....

Yes, you are right ... i walk on thin ice.

@tatarize

tatarize a day ago • @X3msnake

I must add, risking being blocked myself, that i feel ...

@lexelby

Thanks for telling me how you feel. You're not risking being blocked by sharing your feelings.

I find that offensive. Ofcourse, he's risking that. If somebody's is offensive even without intending to be and while saying true things, they are absolutely risking that. It seems like you are downplaying the danger of saying true things with no intended offense. I feel like I'm living proof of that fact. I said something true with no intended offense. Offense was taken and I was blocked. I feel like there is absolutely no protection from risking being blocked in this manner for saying things that you may or may not find offensive.

I didn't empathise with your offense because I thought being right or being helpful or making a very very strenuous case that I mean no offense would save me; it did not.

Using welcoming and inclusive language I was maligned and defamed after being blocked called a villain, abusive, and had the people given the impression that I was making personal attacks. Being respectful of differing viewpoints and experiences No respect was shown to my viewpoint, no respect was given to my experience. Gracefully accepting constructive criticism There was no grace in the acceptance of my constructive criticism. Focusing on what is best for the community I feel like that reaction had absolutely no focus on the good of the community. Showing empathy towards other community members There was no empathy shown to me. There was no consideration of how banning would make me feel, or to my objections at what I felt to be completely unjustified. I mean go ahead and try some empathy there Lex. Put yourself in my shoes.

You see something that seems to run contrary to what you know to be true. You bring this up. I say I are offended that you brought it up and you should have brought it up differently. You provide evidence that the technical misunderstanding is actual and real. I warn you warn you again not to be offensive, by suggesting that there is anything wrong. You protest that you are not trying to be offensive, you're just trying to explain this thing and how to fix it. And provide a code that would fix this. I ban you. For lack of empathy. You write an email, saying that the Code of Conduct says empathy is a good thing not that perceived lack of it should be met with such a punishment. And the technical flaw you were highlighting is correct. I quadruple your punishment. You respond again that you feel that that is completely unreasonable. I edit your original comments to make it ambiguous whether you were right about the technical point you were making. You complain that removing that destroys your credibility by making it unclear whether you were right. I decide that you are too angry. I remove all references to InkStitch's website and change the name of the project to StitchScape to ensure that I will no longer have to interact with you. You make another account to try to air your grievances. Demand that your hard work not be misrepresented that you not be maligned and defamed. I edit your comment away. I block your emails. I say "Goodbye, and I'm sorry you chose to end our collaboration in this way." I tell everybody that I had to block your emails because you were being abusive and unreasonable, and that I'm sorry that somebody like that reacted in that manner. I selectively edit paste parts of your personal emails to make you seem like you had no interest in cooperating further. I tell the people that you became increasingly deranged and abusive and that I didn't want to be attacked in such a manner anymore. I'm not asking you to agree with this, but I asking that you see it from my point of view and try to empathise with my offense here. I feel like after this telling @X3msnake that he's not risking a ban for speaking up is actually grossly understanding the risks of speaking up. I mean you earlier in this thread said that "there had previously been a pattern of borderline-inappropriate comments in other issues". I can only suppose this pattern was similar. I was vocal on another way to implement a flat fill, without realizing your way was different than the traditional way. I noted that from a technical standpoint a stop-command could not work the way you thought it did, and you took offense. Please empathise with the fact that I do not actually know what this pattern might be, like X3, it seems like speaking up or getting you on the wrong day and not abandoning a point we have or idea we'd like to bat around is something that manifestly can get a person banned.

We must show absolute unfailing empathy towards you, but you owe us no empathy in return. And we don't have the power to ban you. When we feel offended we must bite our tongues when you feel offended you threaten administrative action immediately. And then defame and and recast yourself as the victim.

Let me ask you a question, what do you suppose would have happened if when you felt offended by my comment or X3's comment you simply closed down the tab on the web browser. Or if you ignored the issues people raise generally and only focused on coding rather than building a community and coding. Do you think the project would suffer greatly? That if X3's question didn't get threatened and my criticism didn't cascade into getting banned, banned more, stolen from, banned more, defamed, defamed more. Would the project be worse off? If you never banned anybody unless asked to ban somebody do you believe the project would be significantly worse?

I find things like the claim that you "repeatedly tried to deescalate the situation" offensive. I have de-escalation training. And there's a lot of theory behind it. Here's Glasl's model.

glasl s_model_of_conflict_escalation svg

Note that exactly everything you say was an attempt to de-escalate the situation, is in the model as an escalation. Actions instead of words, resorting to threats (stop or I ban you), saving face (it was entirely his fault), limited destruction (banned), total destruction (banned forever, blocked all emails).

707px-graham s_hierarchy_of_disagreement-en svg

Note, in Graham's model, my crimes were in cyan there. I disagreed, then I backed up that disagreeing with evidence. I tried to insist repeatedly that I intended absolutely no insult or ad hominem that I was trying to fix this issue that I identified and by that time it already had escalated beyond my control. I am offended that you portray your actions as de-escalating. Do you want to know what actions would have de-escalated the situation? Doing nothing. I am offended because it seems to me that the claim you are trying to make is that "I tried to de-escalate the situation, each time he spoke up I hit him with a bigger stick and harder, and yet, all my attempts to handle the matter failed."

@X3msnake Member X3msnake 20 hours ago Hey Masters. I have to invoke TLDR here.

One thing we must keep in mind.

Open source project means we are working with people´s free time and free will.

Independent of being right or wrong we must respect each others space.

No dia terça-feira, 14 de agosto de 2018, AkiraNorthstar < notifications@github.com> escreveu: … @X3msnake Member X3msnake 20 hours ago And we are interacting with people not computers. Logic alone does not cut it.

2018-08-15 22:38 GMT+01:00 Vinicius Silva x3msnake@gmail.com: … @tatarize

tatarize 18 hours ago @X3msnake

Hey Masters. I have to invoke TLDR here.

I find that highly offensive. Go back and read it expect to be horribly banned!

And we are interacting with people not computers. Logic alone does not cut it.

The problem is the community is just writing stuff. It taking offense and threatening them with action escalates a situation a thousand fold. Using actions rather than words also escalates things. Silencing them and maligning and defaming them also escalates things. But, these escalations are usually only available to admins. The only thing common people can do is troll, threaten, insult, make personal attacks. That's the range of their escalations.

He who governs best, governs least.

While I am completely on board with the fact that I hurt Lex's feelings. He didn't appear to give one iota of a thought to my feelings and ratcheted a situation up to a thousand when ignoring it would have provided the optimal outcome: ignoring it.

It isn't that feelings don't matter and people are robots, it's that providing consequences merely because your feelings were hurt is a gross misapplication of power. If he were to step back, do no moderation at all, things would go much more smoothly.

The only time moderation is ever needed is when somebody's long-term overall presence is damaging to other people's cooperating and participation. And the only person who did anything close to that is @lexelby himself, by needlessly escalating such things. Though obviously under any assessment his contributions are clearly on the positive side.

So it might suffice to have words with him and tell him to lay-off with the idea that you need to enforce your feelings. To stage an intervention as it were. But, for me that might well result in being banned again. Which I find very offensive.

@lexelby Member lexelby commented 15 hours ago @tatarize, can I ask a favor? Can you please hold off on commenting for awhile until I have a chance to answer at least some of what you've said above? There's a lot here, and I'm really having a hard time keeping up.