Brief essence of the situation: our compatriot fafhrd91 (there is a person in the nickname on the hub, but this is not him) for 3 years almost independently wrote actix-web – one of the most popular crates in the rasta infrastructure (see cdvp), the leader in most different benchmarks , and during this time he was subjected to at least three waves of persecution for “misuse of rasta.” After the last time, the author freaked out, and transferred the repository to his account with the note “I plan to hide the repository.” Of course, a lot of people immediately made mirrors and backups, but in my opinion this does not greatly correct the situation.
In place of the repository, the author left the only postmortem, which I quote below and quote in its entirety:
What it looks like from my side: the next security guard (a member of the RustSec team) created the issue “your code contains UB”, the author asked for an example that triggers it, the security provider provided such a code, after which the author corrected the use of the public api private so that UB did not arise . When asked “why not remove unsafe,” the author replied that this could have performance implications, so now he just fixes a symptom to think how to fix it without a performance drawdown (recall that benchmark games actix-web are the fastest ), or an inconvenient api (it is surprisingly good at the Actix). After that, a shaft of accusations fell upon him that he misused the language, and in general, should never write on it.
The result – the removal of the project, the final burnout of the author and unwillingness to deal with the ungrateful opensource henceforth:
Another day, another "unsafe shitstorm”, I guess I get used to it. It is interesting how easy to move comment out of context and how hard to comment with very clear intention (especially if you are not native speaker) What was the patch? It was very strait forward, simple, uncreative change, intention was just to remove unsafe not to fix existing code. I believe software development is one of the most creative work we do, and creativity is part of why we love software development, why it is fun. Especially if you combine it with real world projects constraints. “creative constrains” could be source of very interesting solutions. Being on the edge of your abilities is super fun. So uncreative change felt boring (oh! And author gave up copyright claims for that patch (a bit irony and sarcasm)). I’ve never used unsafe unintentionally, I use it because I believe usage is safe. There was no any malicious intentions. I believed it held mutable aliasing invariant and I was very happy that someone found real problem. I wanted to solve the problem, just with a bit of creativity. And use RefCell solution only if it would be not possible to solve it with any other way. Btw, I like the solution I found, it is in master and solves the problem at least one from the issue. If you want to push boundaries you have to touch this boundaries and sometimes you push too hard. Be a maintainer of large open source project is not a fun task. You alway face with rude and hate, everyone knows better how to build software, nobody wants to do home work and read docs and think a bit and very few provide any help. Seems everyone believes there is large team behind actix with unlimited time and budget. (Btw thanks to everyone who provided prs and other help!) For example, async/await took three weeks 12 hours/day work stint, quite exhausting, and what happened after release, I started to receive complaints that docs are not updated and i have to go fix my shit. Encouraging. You could notice after each unsafe shitstorm, i started to spend less and less time with the community. You felt betrayed after you put so much effort and then to hear all this shit comments, even if you understand that that is usual internet behavior. Anyway, removing issue was a stupid idea. But I was pissed off with last two personal comments, especially while sitting and thinking how to solve the problem. I am sorry for doing that. It’s been three years since I started actix project (time flies). I learnt a lot, i meet new people, I found language that I really like and want to use it fulltime, I found fun job. But damage to the project's reputation is done and I don’t think it is possible to recover. Actix always will be “shit full of UB” and “benchmark cheater”. (Btw, with tfb benchmark I just wanted to push rust to the limits, I wanted it to be on the top, I didn’t want to push other rust frameworks down.) Everything started with actix, then actix-web and then actix-net. It took a lot of time to design api and architecture. Each of this projects was rewritten from scratch at least 4-5 time. I hope I expanded some boundaries and found few new patterns, I hope other developers will check source code and find inspiration to move even further. Nowadays supporting actix project is not fun, and be part of rust community is not fun as well. I am done with open source. P.S. I moved actix-net and actix-web project to my personal github account. I will make decision during next couple days what to do. I don’t want to see the project becomes ghost of what it was. Maintainers must understand how everything work, but don’t anyone who does and those who could are busy with other projects. At the moment I am planing to make repos private and then delete them (will remove benchmarks as well), unless others suggest better ideas. Everything has to come to the end. It was fun trip but now is time to move on. Life should be fun.
What it looks like from our side: the next security guard (a member of the RustSec team) created the issue “your code contains UB”, the author asked for an example that triggers it, the security provider provided such a code, after which the author corrected the use of the public api private so that UB did not arise . When asked “why not remove unsafe,” the author replied that this could have performance implications, so now he just fixes a symptom to think how to fix it without a performance drawdown (recall that benchmark games actix-web are the fastest ), or an inconvenient api (it is surprisingly good at the Actix). After that, a shaft of accusations fell upon him that he misused the language, and in general, should never write on it.
The result – the removal of the project, the final burnout of the author and unwillingness to deal with the ungrateful opensource henceforth:
I am done with open source.
— Nikolay Kim (@fafhrd91) January 17, 2020
In support of the author, the authors wrote the Corti (Klabnik, Lodochnik, Raf).
For me, the situation is very unpleasant. Our project uses Actix Web because of the combination of a unique combination of speed, convenience and reliability. And now the main menter left the project, and if in 3 years there was no one who wrote more than 3,000 lines of code, then where is such a person from now? ..
Saved correspondence (the original issue was deleted by the author of the repository): https://gist.github.com/pcr910303/d7722a26499d0e9d2f9034a06f2433b4
35 comments
M-yes. For that fought for it and ran. Sorry …
Here you go. A bunch of fanatics, most likely not creating anything, sheimit a person for the fact that his development processes do not fit into their far-fetched ideals …
Fans of the “idiomatic” code.
Rather, from the “security people” category, which Torvalds periodically expresses his opinion about.
Fixed for generality. The spirit of the era, so to speak.
Thanks to the Internet, as a powerful and affordable speaker, with a platform with which you can broadcast emotionally and fascinatingly, without burdening yourself with the unnecessary cognitive difficulties of preparing a speech
I don’t understand, some eccentric from the “team grows” so authoritatively shits in comments, and this has an effect on the author? And send it in three letters (politely, of course)? Or is there tolerance in the github, patience for the wretched, that is, and there will be repressions for such an even polite message? Some kind of unhealthy situation.
For such horse presentations (sorry for the vulgarity) that they say “you need to stop writing in Rust” you can just give a link to the wiki page with a description of the Fork team.
The author made one mistake – he did not ignore these from the very first time, caved in with edits. So they settled.
Nikolay, don’t give up because of the shit. The dog barks – the caravan goes on. This is how it should be.
The fact is that he quite reasonably explained that the removal of unsafe requires further investigation of side effects, including on performance, but instead of accepting this need, he began to be hit
Do you want to say that comments like “this patch is boring” are not like provoking a flame? Nikolai, judging by the correspondence, also did not always respect others.
And it seems to me that deleting the repository in such a situation is a loud, but infantile act.
Roughly speaking, to treat you well, you yourself must treat others the same way.
Of course, the topic with unsafe and UB is extremely holistic and painful, so I understand why there is an increased number of haters.
And I also have the feeling that other maintainers did not appear simply because Nikolai himself loves to do everything alone.
Now it seems like an adult act to give turnip control to someone who uses a lot of actics in prod.
In summary, I want to say that emotions are very harmful to long-term work.
it is incorrect to compare it with commentators from the github. The load on him, as the maintainer of a popular project, is several thousand times greater. Moreover, as I understand it, this is also not his main job.
In general, it is interesting to observe how this “inclusive” community requires an ordinary programmer, probably also an introvert, skills of a specialist in public relations. Level 80 inclusiveness.
Well, for the sake of justice, if you are very burned out, if you have nervous exhaustion, then your reaction to the next stress will be “The burned shed, burn and hut”.
I really hope that he will step back, reconsider his priorities in life and simply calmly give up the reins of the project.
it happens
Well, where does open source come in, any product can be minimized, and then I realized that everyone did the fork and can use what they have for their health.
And what can give such a right to someone, in your opinion?
I would very much like to see the opinion of a specialist.
Well, let this victim write a letter to the Committee for the Protection of the Rights of Sexual Minorities. Torvalds will be forced to take courses once again that all programmers are equal, this is their vision just like that, and he was obviously wrong and should have treated the vision with due respect, explained and taught this programmer, not sparing his time and energy.
Throws to extremes are not necessary, all that is necessary is not to make offensive statements. Writing them requires no less time than you could spend on rejecting the patch. If desired, this can be done by inserting one pre-compiled universal string.
There is no malicious intent in a bad code, it is simply a consequence of a lack of skills / time / budget / other circumstances. This happens with everyone, and especially with beginners. But an insult is a deliberate decision to make a person unpleasant, with all the ensuing as in a subject – disappointment, burnout, depression, that is, consequences that go to the tangible plane. And no ephemeral time savings can justify this.
The time to reject the patch is actually not long, but the time to analyze the patch is very significant.
Those. it turns out such a continuous code-review, he will begin to send slightly redone options in the hope that one of them will satisfy all the criteria. But Torvalds will have to look at it all over and over again and spend his time. Or start learning how to do it right.
And so everything is clear and understandable, go on.
A normal person will understand correctly, especially since someone who is trying to roll something into the kernel must at least have enough knowledge to understand the message.
Of course, this is not 100% protection, but a large number of projects show that the Rust guarantees really seriously reduce the number of memory safety bugs compared to C / C ++ and serious companies are adopting it just because of this, and not because of the allegedly notorious hypa. If, out of 70% of errors, the compiler can prevent conditional 95%, then in my opinion this is a significant achievement.
I understand that you, as a fan of D, may be skeptical about the guarantees of Rast, but the practice shows slightly different results.
You do not need to believe. Safety is proven, not verified by tests. In particular, the safety of standard Rust primitives was proven by formal methods by the Ralf Jung group and Co.
Torvalds himself is almost the most famous toxic in IT.
and both of his projects are breaking records of popularity
and both of his projects are breaking records of popularity
Yes, but I would not put him on a par with fanatics.
What does something cool does not give him the right to humiliate and insult other people. Not to mention the fact that such behavior from the authority of world-class fame (and probably an idol) is perceived by the victim no weaker than it is from hundreds of announcements with reddit at once.
And what can give such a right to someone, in your opinion?
I would very much like to see the opinion of a specialist.
There are people who deserve this, especially if they are incompetent and their actions actually steal your time. Sometimes I consciously do this, i.e. I’m driving worse than necessary / it’s possible that such a character doesn’t fit the second time and his friends thought before starting attempts to ride you for free. To like a dog, instinct was.
Evidence of correctness, as far as possible, is obvious in the head of the author of the project. Well, or on a piece of paper. It is unlikely that he wrote this unsafe by accident.
But the fact of having unsafe is not a bug. Its availability is slightly worse than the safe version. But his absence left UB which was proven and was much worse.
The question is, what is the point of telling the person who writes on the rast that unsafe is wrong? Do you think the author of the server himself guesses something like this after several years of development in the language?
Warn community? The fact that the author in one place possibly reasonably used unsafe? And that he probably made a mistake there? Why not write that it seems he could have made a logical mistake, which is quite consistent with safe, you did not find it, but it is possible. And you did not check all the code. Fits generally to every commit.
If you want to warn the community about possible errors in the repository that you did not find, then you can write the bot right away, since this applies to all repositories except empty ones. But you know, the community is up to date, it is warned.
PS “You” in the text is not you, of course, but just a way of expressing thoughts.
I would answer in his place: “can anyone do better?” and did not change anything.
And to write such a plug for the compiler is a direct deception of library users. The more I look at it, the less I like the author’s position, despite the fact that 3 hours ago I was completely on his side …
There are actually lots of particulars like that to take into consideration. That is a great point to carry up. I supply the ideas above as normal inspiration but clearly there are questions just like the one you carry up the place the most important thing can be working in trustworthy good faith. I don?t know if greatest practices have emerged around issues like that, but I’m certain that your job is clearly identified as a fair game. Both boys and girls feel the influence of just a second’s pleasure, for the rest of their lives.
Magnificent beat ! I wish to apprentice at the same time as you amend your website, how can i subscribe for a weblog web site? The account helped me a applicable deal. I were tiny bit acquainted of this your broadcast provided shiny transparent idea
El fruto de 35 años de experiencia en el sector de la calefacción,climatización, y saneamiento avala a esta empresa en Segovia, que al mismo tiempo se mantiene al tanto de las últimas novedades y técnicas pioneras como la telegestión la geotermia. REPARACIÓN MANTENIMIENTO E INSTALACIÓN de calderas de gasoil y gas, acumuladores de agua y termos, descalificadores y osmosis para el tratamiento de agua contra la cal y instalaciones de placas solares para acumulaciones de agua climatizaciones de piscinas. Somos Frío Jerez, S.L., una empresa especializada en la venta de aire acondicionado. Desde el inicio de labores, en el año 1985, nuestro esfuerzo se ha basado en mejorar los servicios que ofrecemos, con calidad y eficiencia.
Absolutely indited articles, appreciate it for entropy. “The last time I saw him he was walking down Lover’s Lane holding his own hand.” by Fred Allen.
Hi, just required you to know I he added your site to my Google bookmarks due to your layout. But seriously, I believe your internet site has 1 in the freshest theme I??ve came across. It extremely helps make reading your blog significantly easier.
I keep listening to the reports talk about receiving free online grant applications so I have been looking around for the most excellent site to get one. Could you tell me please, where could i acquire some?
I gotta favorite this site it seems handy very helpful
You made some clear points there. I did a search on the issue and found most guys will go along with with your blog.
Awesome website you have here but I was curious if you knew of any message boards that cover the same topics discussed here? I’d really love to be a part of group where I can get opinions from other knowledgeable individuals that share the same interest. If you have any recommendations, please let me know. Kudos!
Pavel Durov told the US Securities and Exchange Commission about ICO
Ten crazy secrets on the covers of games that you have not noticed