I can’t speak for fd.o, but I was in a leadership position on another project where we got a similar case disastrously wrong, so I might be able to illuminate how that happens.
The first mistake we made was not to differentiate harassment from conflict resolution. Most of the issues we had between contributors were personality clashes or technical disagreements that escalated. As you say, most of these have both parties acting in good faith. The main thing that the project needs to do is deescalate and get the people involved to talk again. This is absolutely the wrong approach in cases of harassment. There were two key causes of this:
First, (as you mentioned) no one involved had any formal (or, in most cases, informal) training in how to deal with harassment. Most employers offer this, but it’s rarely compulsory. After the initial incident, I signed up for this training with my employer (as did another colleague involved with the same project). This highlighted some of the things we did wrong, but it was quite illuminating who was there: we were the only men on the course who were there voluntarily. Most of the people were women who were there because they had been targets of harassment or bullying and wanted to understand the processes better. The rest were men who had been forced to take the training because they had been accused of harassment (and, from a lot of their comments, I suspect had been engaged in it long term).
Most F/OSS (or other community-led) projects don’t have any formal structure for providing this kind of training. And the work-provided training wasn’t sufficient. There were a bunch of ‘and this is where you need to escalate it to HR specialists (or the police)’ moments, but volunteer projects don’t have those experts. One of the biggest things a F/OSS charity could do to improve the situation would be to hire real experts that projects can use as consultants. Companies that back projects could help out be loaning HR as well as engineers to the projects.
Second, we had very poor visibility into what happened. There’s a natural tendency for humans to trust the first person who explains a situation. In our case, it was made worse because the only thing that happened on project infrastructure (and so the thing that we saw) was an IRC exchange where one project member connected and had a go at another member then left. We didn’t see the backstory, which involved a load of gamergate nonsense on Twitter and elsewhere (and those of us not in the Twitterverse had only a very vague idea of what Gamergate was. I thought it was a handful of people who were upset some game they didn’t like won an award, I had no idea that it was a coordinated harassment campaign). When a lot of the things that happened are private messages, or in non-project spaces, it’s hard to know what the real context is. We saw a load of things quoted out of context that made both people look bad. We also had friends of both people jumping in and defending them and attacking the other.
It really takes weeks of investigation to properly handle this kind of thing and dig to the truth. And this compounds the problem of the people dealing with it not having the right training. And, unless they are employees of a foundation backing the project, they also lack the time to do a good job. And, again, the assumption that people are basically decent (which is normally valid) hurts when one of the people is not and is actively trying to subvert the process. The evidence from an honest person reporting what happened and a dishonest person cherry-picking out-of-context comments will look very similar. Unless you personally know the people involved (which brings its own problems of bias) then it’s very hard to work out who is telling the truth. This is even harder when one or both people involved are highly visible in the community, because they will both be publicly sharing a narrative and one is mostly accurate (but only mostly: no one is 100% objective when they’re being personally attacked) while the other is a carefully crafted fabrication, but there’s pressure to respond quickly because both are public and the community is full of people who believe either one and are complaining.
In the last few years, the problem has become worse. A lot of CoC complaints now are malicious. Far-right folks absolutely love baiting people into saying things that look bad when quoted out of context, then deleting the context and reporting the remark. They make a game out of trying to get people kicked out of projects. So the workload has gone up, which compounds the other problems.
I wish I had a good answer for how to improve this.
We need your help to get Typst 0.14 over the finish line: The release candidate with accessible PDFs, character-level justification (not even in LaTeX!), and more landed today! Check your documents, packages and against "Typst 0.14.0 Testing" on the web or the new compiler.
OOPSLA 2026 deadline is just a week away! Can you please help us get the word out by sharing? Thanks!
https://2026.splashcon.org/track/oopsla-2026
Also: Do NOT engage with anti-FOSS ragebait. Hold your tongue and be the bigger person. Only engage with good-faith posts and only with kindness.
Happy 10 year anniversary to this tweet! Has memory safety in C++ been solved yet?
Borrowed from fakebook.
My daughter came home from school and said,
“Mom, you’re not going to believe what happened in history class today.”
Her teacher told the class they were going to play a game.
He walked around the room and whispered to each kid whether they were a witch or just a regular person. Then he gave the instructions:
“Form the biggest group you can without a witch. If your group has even one, you all fail.”
She said the whole room instantly lit up with suspicion.
Everyone started interrogating each other. Are you a witch? How do we know you’re not lying?
Some kids clung to one big group, but most broke off into smaller, exclusive cliques. They turned away anyone who seemed uncertain, nervous, or gave off even the slightest hint of being guilty.
The energy shifted fast. Suddenly everyone was suspicious of everyone.
Whispers. Finger-pointing. Side-eyes. Trust dissolved in minutes.
Finally, when all the groups were formed, the teacher said,
“Alright, time to find out who fails. Witches, raise your hands.”
And not one hand went up.
The whole class exploded. “Wait! You messed up the game!”
And then the teacher dropped the bomb:
“Did I? Were there any actual witches in Salem, or did everyone just believe what they were told?”
My daughter said the room went dead silent.
That’s when it hit them. No witch was ever needed for the damage to happen. Fear had already done its work. Suspicion alone divided the entire class, turning community into chaos.
And isn’t that exactly what we’re seeing today?
Different words, same playbook.
Instead of “witch,” it’s liberal, conservative, vaxxed, unvaxxed, pro-this, anti-that.
The labels shift, but the tactic is the same.
Get people scared. Get them suspicious. Get them divided.
Then sit back while trust crumbles.
The danger was never the witch.
The danger is the rumor. The suspicion. The fear. The planted lies.
Refuse the whisper. Don’t play the game. Because the second we start hunting “witches,” we’ve already lost.
Did you know your MacBook has a sensor that knows the exact angle of the screen hinge?
It’s not exposed as a public API, but I figured out a way to read it and make it sound like an old wooden door.
Source code and a downloadable app to try it yourself: https://github.com/samhenrigold/LidAngleSensor
Quokka-eating-a-eucalyptus-leaf timeline cleanse.
"Nom nom nom nom".
history = (λx. x x) (λx. x x)
When life gives you lemons, don't make lemonade. Make life take the lemons back! Get mad! I don't want your damn lemons, what the heck am I supposed to do with these?