Half-Elf on Tech

Thoughts From a Professional Lesbian

Tag: wordpress

  • Plugins: Just Sexism

    Plugins: Just Sexism

    This is the last one for the year and it’s a couple people who are just plain idiots about the world.

    I wanted to find the one where the guy went into a massive transphobic rant about ‘real women’ but since I can’t remember the exact term he used, I’m struggling to find it. If I do, that’ll get added.

    To Sir, With Love

    A lot of people default to ‘dear sir’ in emails to Plugins. I, being not a sir, have a pre-defined reply I used to remind them the Internet has women and women code, moving on.

    FYI, you shouldn’t assume the people reading your email are only male. You often won’t know someone’s gender in email. It considered more universally polite to address a group (or an individual) by name or team name.

    That’s not terrible, right?

    Once in a while people are asshats and tell me not to be so touchy and I make a note of that in their account (it usually comes back to haunt them). More often, though, they apologize and explain they’d not been taught that, and we all learn from this experience.

    Similarly I tell people not to call a reviewer ‘My dear’ because that implies a relationship we do not have. That’s easy to mess up when you’re ESL, and the reply actually explains that you would say “Dear Reviewer” instead. This is, generally, well received. I’ve only caught a couple complaints and one was a guy from Texas, who got livid I suggested his English wasn’t too good.

    It really wasn’t.

    Daily Life of Women Online

    Starting off simple with some nameless people. All of these are comments or weird replies I got in the process of plugins.

    First up, we have this cheerful fellow who, after being corrected about calling me ‘sir’ for a couple DAYS, finally replied with this:

    Btw I saw ur talk on wordpress.tv yesterday, and realized that you’re a lady (a gorgeous one!).

    Then we have this weird Slack Message from someone I never talked to before:

    Thank you Mika you made my day love you.

    And also this one, later that day from someone else.

    Just love you for what you did to me today 🙂

    Shortly before WCUS (the second or third one):

    Hi.. good to see u on wcus speakers.. getting my tickets to fly US from PK for the show
    Best of Luck

    This one came via my contact form, after a plugin was rejected (because he never finished fixing it). My mother would argue that I am, in no way, ‘too’ feminine. My wife would say I’m perfectly feminine. Me? I’m happy with who I am.

    P.S. Yeah… I understand you have no obligation to reply… or to do NOTHING. With that sentence you proves very feminine, perhaps TOO feminine…

    And of course, Mr. Hugs.

    Corrections made, is attached the new version.

    hugs

    In case you gents were wondering what it’s like to be a woman online, it’s that.

    If You Have to Ask…

    Mid review, there was this one:

    p.s.
    Before contacting, I looked you up on the net, and when I realized that
    you’re girl and having this much passionate for coding, my respect
    grew²
    (hope this didn’t sound sexist)

    It did. And I replied to him, telling him it was sexist. He did not take that well.

    Gender Is a Construct Anyway

    This fellow started by going off about his plugin being ‘rejected.’ It was pended (and he’s why the email tries to be SUPER clear about that now), but he didn’t read. I suppose I should’t have been shocked when he replied to the ‘Sir’ reminder like this:

    FYI: When you correspond with people, you should give your name so they don’t have to guess whether you are male, female, shemale, or a fourth gender.

    ‘shemale’ was a term that was used to call transwomen back in the 80s/90s, but we’ve come a long way since then. Also it was wrong then, and it’s wrong now. This guy may later get his own post, because he made a petition to get me ‘fired’ for telling him to sanitize his shit.

    It’s a Cycle

    First up, we have Bumper for anyone who likes Pitch Perfect.

    I sincerely apologize for unconsciousness caused by my address. I am just 27 this month and have never been lucky enough to see any female programmer. Maybe their menstrual cycle affect their ability to pay high level of concentration in this field. But I really appreciate the ones who break the ice.

    Bumper

    In the end, I rejected the plugin because everything was filled with that kind of tone after. Seriously, he stuck to his guns that women couldn’t dev, and went on to posit I was menopausal. Or rather … past my prime. Yes, he actually suggested I was able to succeed as a plugin reviewer because I must not have to deal with my period anymore.

    Boop Beep Robots

    Buggy (also not his real name) had trouble with his account. He emailed asking for help, and started with “Dear Sir”

    He got the normal reply, followed by directions to actually help him.

    Foolishness has many levels, yours is very polished, thus shiny!! Who cares who read the email, i just needed an answer. If you feel the email was meant for a male reader, you could hv put aside the email until a passing male reply that!! However I appreciate you CAREfree attitude to reply me. Thank you human/robot!!

    Not really sure how it’s foolish to remind folks that people of all genders work on WordPress, but off you go to the block bin, Buggy.

    Don’t Default To Sir

    The last thing WordPress needs are people that misogynistic, and dumb, dealing with people in the community.

    If you can’t accept that some people in WordPress aren’t men, you need a new hobby.

  • Plugins: D.M.C.A

    Plugins: D.M.C.A

    This is really more of a cautionary tale about how not to be an asshat to yourself.

    Go make the popcorn, I’ll wait.

    Welcome back! Here’s our story.

    A developer got banned from WordPress.org (temporarily) because they slapped themselves with a DMCA.

    No, really. Evan (not his real name) filed a DMCA that went to the data team, who handed it to Plugins and asked “Uh, what the hell?” I looked into it, read it a few times, and confirmed.

    1. It was a legit DMCA
    2. Evan was the plugin owner
    3. He had authorized a company to act on his behalf for DMCAs
    4. The company claimed Evan’s plugin on WordPress.org was in violation

    Yeah, you read that right. Take down these illegal copies of Evan’s own plugins… Except the plugins were Evan’s and were clearly not illegal copies. We read that a few times and decided it was one of these:

    1. They’re weird and don’t know it’s their own plugins
    2. Evan wasn’t thinking and just approved everything from the company
    3. It was a false claim

    On Monday I emailed the DMCA company and Evan to ask that. Neither of them replied. I checked with the legal folks and they agreed, we had to close the plugins and notify Evan of the situation. Since the DMCA said it should be passed on to him, I shrugged and did just that.

    Three days later, Evan shows up freaking the fuck out for pretty obvious reasons. He explained he’d used a computer program/service to send out the DMCAs and no one checked before sending.

    Playing middle-man, the plugin team passed on the details and explained that things were … not going to be quick. They got directions on how to formally retract the DMCA notice, and advice about that. The only other option we had was to file a counter-notice, but that would take weeks.

    It took about a week after that to untangle the fuckery.

    The kicker was it happened a second time, but Evan caught that super fast and fixed it before we had to take action. I suggested he just not try that shit again anyway, since his code was GPL to begin with.

    Coda

    There is an interesting though here, though.

    Is a DMCA valid for Open Source code? The Digital Millennium Copyright Act is intended to protect copyright (it’s right there in the name). It exists to prevent people from taking a copyright protected item (say … a copy of an episode of The Simpsons) and posting it up on your own website. You don’t own the show, you don’t own the intellectual property, you’re just a fan.

    But Open Source code is meant to be shared, right? That’s one of the first rules (… open …). The right to take the code, tear it down to the bones, and build something else from it. The entire existence of WordPress literally lives on that (remember WP is a fork of B2).

    Could B2’s creator turn around and sue Automattic (or the WordPress Foundation) for copyright abuse?

    Thankfully, no. WordPress properly keeps the copyright in place. If you’ve ever heard me snark about copyright and how it’s additive, the easiest way to understand is this. If you take an existing plugin and refactor the code to make it even better, you would add your copyright notice on to the existing one.

    @copyright Person A, 2022 becomes @copyright Person A, 2022 ; Person B 2023

    Though I recommend you do it nicer and neater.

    Anyway. There are two main kinds of DMCA attacks against Open Source. The first is “That code is my copyright, stop using it!” and the second is “That code is circumventing a technical protection measure.” If the second one confuses you, don’t feel bad. I am very familiar with the first item (I’ve hosted fansites for 25 years and had my fair share of DMCA claims) but the first time I ran into the second was when YouTube forced GitHub to remove a library.

    In the end, GitHub restored the code (and explained why). Anticircumvention claims pretty much boil down to “This code is used to get around my protections” and is why people who make those DVD ripper tools are often in trouble (and in fact they’re why the DMCA happened in the first place). None of that matters in this fellow’s case though.

    The question is … Does Evan have a valid DMCA claim?

    Honestly, I don’t think so. Taking someone’s code and reselling it as your own is likely illegal for other reasons, and there may be some merit to any images or proprietary work used. But at the same time, the code was released under a license that literally allows its use as such. Now the GPL also has some requirements (like maintaining copyright, as well as not claiming it’s yours) but re-hosting code on your own site? Yeah, you can do it.

    Still, that’s a question for a lawyer, and not me. For me, what I stand by is that if ain’t your code, and the developer(s) ask you to stop selling, or giving it away, you should do what they asked. Don’t be a dick. Be cooperative together.

  • Plugins: Finally, a Decent Bribe!

    Plugins: Finally, a Decent Bribe!

    There was a problem company.

    Among other infractions, they’d sockpuppeted a few years back but calmed down. Or so we thought. Then the forums team pinged Plugins with a list of 415 separate user accounts. You read that correctly. But it was worse than it seemed. Using l33t DNS skills, we traced the sock puppets to not one, not two, but three separate accounts!

    Three. Separate. Plugin developer. Accounts. No, it’s not a return of Zorro!

    Let’s call them Shemp, Moe, and Curly!

    The Three Stooges

    When I got reports about fake accounts, I always pull up the plugins to see if I’d left notes. One of the things the notes includes is adding and removing people with commit or support access, and via that I was able to see they’d been trading plugins between the three accounts. The same 6 or 7 (I forget the exact number) plugins would add one of the other people to the plugin, remove themselves, and then repeat it a few months later.

    People like this actually why we now track when people are added to plugins and when the ownership is transferred. It’s generally a bad-faith move to swap around that much, and honestly I’ve never understood why people would bother.

    So I did what I do and checked the submission IPs. Lo, Shemp had used multiple IPs to submit their plugins, and two of those were used by Moe and Curly. That of course isn’t rock solid proof, so I sent three slightly different emails to each one. 

    • Moe had their plugin closed and was told that for the sin of egregious sockpuppeting (most of the fake reviews had to do with their plugins) they were banned. Also since Moe had been warned before, they weren’t getting back in. This was strike three for the same offence.
    • Curly was told that their plugins were closed because account was connected back to another which had seriously violated the guidelines, and could they please explain the connection so their plugin could possibly be restored.
    • Shemp was told that DUDE WHAT THE HELL? Banned for super spamming, making multiple accounts, etc etc. I told him there were over 500 accounts, though.

    Only Shemp replied.

    Confessions of a Stooge

    Shemp’s reply was …. interesting. First he argued they’d had no violations for a month (which is confirming the previous issues), he then admitted that Moe was indeed his other account, and asked for another chance. After all, he had hired a marketing company and it was all their fault. Oh and by the way, Shemp was partners with Curly.

    So I pointed out Curly had been emailed separately and if they were indeed a separate company, Curly should reply to that email. (Narrator: they did not and have not). Then I explained that when you hire someone to do a job and they fuck up, it’s your responsibility. Especially when you hire a company that does that level of spamming after you’d been warned specifically about it three separate times. 

    Shemp replied, saying he understood how serious the matter was (doubtful) and was accepting responsibility. Please have mercy for people who did honest work. Except the part about the sockpuppeting and multiple accounts. Please give Shemp and his company a second chance.

    Technically it was their fourth. And frankly after you’ve been warned once to not make fake accounts, a business should have the sense to stop. Or, as I said:

    Making the same mistake three more times after you were warned means you either didn’t care enough to monitor your consultants or you didn’t think we were serious when we told you the last time that repeat offenses will result in being banned.

    Me to Shemp via email

    This was followed with a reminder of how one can host code outside of wp.org, have a nice day.

    Time for Eye Poking

    Shemp said he was shocked to know it was this bad. Shemp had also gotten and opened (and I presume read) an email with the subject FINAL WARNING RE BEHAVIOUR ON WORDPRESS.ORG. In all caps. It detailed out everything with fake accounts. Shemp was stunned this ended with the ban I said it would. I know he opened it because we track that.

    This means that Shemp was warned about sock puppets three times, but he continued to hire the companies that made the fake accounts, and he was surprised there are consequences? The ‘reason’ for the mistake is probably that the separate teams that used the separate accounts were unmonitored and unmanaged, allowing them to do whatever they wanted. And see, this is why multiple accounts like that is stupid.

    Then came the best bribe I ever got!

    I have an offer for you. 50% of revenue lifetime, not the income but revenue for you!

    Shemp via email to Plugins

    Admittedly, his revenue was probably pretty slim, but it was way better than the $10 and $50 bribes I usually got. Oh and Shemp promised to never tell anyone I accepted a bribe.

    How does that saying go? Two can keep a secret if one is dead?

    Declined. Banned harder. Curly and Moe (being probably all Shemp) never replied.

    PS…

    A week later, Shemp slacked me and offered to ‘fund’ LezWatch.TV for me. Which led to him getting banned on Slack when I mentioned it to the admins.

    Later I told my forum sock-puppet-hunter friend about this, and he asked why I told them fake numbers for the amount of sock puppets. I like to give them wrong numbers on purpose. Once I told someone he had 20 sock puppets and he argued he only made 10.

    It’s like working with toddlers some times.

  • Looping LinksWith The WP HTML Processor

    Looping LinksWith The WP HTML Processor

    Here’s your backstory.

    You need to search all the links in a post and, if the link is to a specific site (wikipedia.com) you want to add it to an array you output at the bottom of your post, as citations. To do this, you will:

    1. Search for tags for every single link (<a href=.... )
    2. If the link contains our term (Wikipedia), put it in the array
    3. If the link also has a title, we’ll use that

    If we do all that, our output looks something like this:

    • Source: https://en.wikipedia.com/wiki/foobar
    • Source: Foobar2

    While you can do this with regex, you can also use the (new) HTML Processor class to do it for you.

    RegEx

    As I mentioned, you can do this with regex (I’ll spare you the drama of coming up with this in the first place):

    $citations = array();
    
    preg_match_all( '#<\s*a[^>]*href="([^"]+)"[^>]*>.*?<\s*/\s*a>#', get_the_content(), $matches );
    
    // Loop through the matches:
    foreach ( $matches[0] as $i => $match ) {
    
        // If the URL contains WikiPedia, we'll process:
        if ( str_contains( $match, 'wikipedia.com') ) {
    
            // Build initial data:
            $current_citation =[
                'url'   => $matches[1][$i],
                'title' => $matches[1][$i],
            ];
    
            // If there's a title, use it.
            if ( str_contains( $match, 'title=' ) ) {
                  $title_match = preg_match( '#<\s*a[^>]*title="([^"]+)"*[^>]*>.*?<\s*/\s*a>#', $match, $title_matches );
                  $current_citation['title'] = ( ! empty( $title_matches[1] ) ) ? $title_matches[1] : $current_citation['title'];
            }
        }
    
         $citations[] = $current_citation;
    }
    
    ?>
    <ol>
        <?php foreach ( $citations as $citation ): ?>
            <li itemprop="citation" itemscope itemtype="https://schema.org/CreativeWork">
                 Source: <a rel="noopener noreferrer external" itemprop="url" class="wikipedia-article-citations__url" target="_blank" href="<?php echo esc_url( $citation['url'] ) ?>"><?php echo esc_html( $citation['title'] ) ?></a>
             </li>
         <?php endforeach; ?>
    </ol>
    

    This is a very over simplified version, but the basis is sound. This will loop through the whole post, find everything with a URL, check if the URL includes wikipedia.com and output a link to it. If the editor added in a link title, it will use that, and if not, it falls back to the URL itself.

    But … a lot of people will tell you Regex is super powerful and a pain in the ass (it is). And WordPress now has a better way to do this, that’s both more readable and extendable.

    HTML Tag Processor

    Let’s try this again.

    What even is this processor? Well it’s basically building out something similar to DOM Nodes of all your HTMLin a WordPress post and letting us edit them. They’re not really DOM nodes, though, they’re a weird little subset, but if you think of each HTML tag as a ‘node’ it may help.

    To start using it, we’re going to ditch regex entirely, but we still want to process our tags from the whole content, so we’ll ask WordPress to use the new class to build our our tags:

    $content_tags = new WP_HTML_Tag_Processor( get_the_content() );

    This makes the object which also lets us use all the children functions. In this case, we know we want URLs so we can use next_tag() to get things:

    $content_tags->next_tag( 'a' );

    This finds the next tag matching our query of a which is for links. If we were only getting the first item, that would be enough. But we know we have multiple links in posts, so we’re going to need to loop. The good news here is that next_tag() in and of itself can keep running!

    while( $content_tags->next_tag( 'a' ) ) {
        // Do checks here
    }
    

    That code will actually run through every single link in the post content. Inside the loop, we can check if the URL matches using get_attribute():

    if ( str_contains( $content_tags->get_attribute( 'href' ), 'wikipedia.com' ) ) {
        // Do stuff here
    }
    

    Since the default of get_attribute() is null if it doesn’t exist, this is a safe check, and it means we can reuse it to get the title:

    if ( ! is_null( $content_tags->get_attribute( 'title' ) ) ) {
        // Change title here
    }
    

    And if we apply all this to our original code, it now looks very different:

    Example:

    		// Array of citations:
    		$citations = array();
    
    		// Process the content:
    		$content_tags = new WP_HTML_Tag_Processor( get_the_content() );
    
    		// Search all tags for links (a)
    		while( $content_tags->next_tag( 'a' ) ) {
    			// If the href contains wikipedia, build our array:
    			if ( str_contains( $content_tags->get_attribute( 'href' ), 'wikipedia.com' ) ) {
    				$current_citation = [
    					'url'   => $content_tags->get_attribute( 'href' ),
    					'title' => $content_tags->get_attribute( 'href' ),
    				];
    
    				// If title is defined, replace that in our array:
    				if ( ! is_null( $content_tags->get_attribute( 'title' ) ) ) {
    					$current_citation['title'] = $content_tags->get_attribute( 'title' );
    				}
    
    				// Add this citation to the main array:
    				$citations[] = $current_citation;
    			}
    		}
    
    		// If there are citations, output:
    		if ( ! empty( $citations ) ) :
    			// Output goes here.
    		endif;
    

    Caveats

    Since we’re only searching for links, this is pretty easy. There’s a decent example on looking for multiple items (say, by class and span) but if you read it, you realize pretty quickly that you have to be doing the exact same thing.

    If you wanted to do multiple loops though, looking for all the links but also all span classes with the class ‘wikipedia’ you’d probably start like this:

    while ( $content_tags->next_tag( 'a' ) ) {
        // Process here
    }
    
    while ( $content_tags->next_tag( 'span' ) ) {
        // Process here
    }
    

    The problem is that you would only end up looking for any spans that happened after the last link! You could go a more complex search and if check, but they’re all risky as you might miss something. To work around this, you’ll use set_bookmark() to set a bookmark to loop back to:

    $content_tags = new WP_HTML_Tag_Processor( get_the_content() );
    $content_tags->next_tag();
    
    // Set a bookmark:
    $content_tags->set_bookmark( 'start' ); 
    
    while ( $content_tags-> next_tag( 'a' ) ) {
        // Process links here.
    }
    
    // Go back to the beginning:
    $content_tags->seek( 'start' ); 
    
    while ( $content_tags->next_tag( 'span' ) ) {
        // Process span here.
    }
    
    

    I admit, I’m not a super fan of that solution, but by gum, it sure works!

  • Plugins: What a B*tch

    Plugins: What a B*tch

    The old tagline on this site was “Half Elf, Full B.I.T.C.H.”

    I removed it ages ago because, while I got the joke, it didn’t always translate well. The tagline was actually from Tabatha Coffey, who was a contestant on a Bravo reality show Sheer Genius, trying to find the best haircutter. The show was awful, Tabatha was not. She had her own show for a while, Tabatha’s Salon Takover, and she was basically the Gordon Ramsey of haircuts.

    At some point, she ‘took back’ the word “bitch” and said it stood for Brave, Intelligent, Tenacious, Creative, and Honest.

    I like to think I’m that.

    Anyway. This is short and our subject won’t even get a name. That’s how annoying he is.

    User submits a big plugin. On review, which doesn’t take long, it’s found to be a rebranded copy Elementor. It wasn’t even a well done copy, it barely changed name and there was no new code. The plugin was rejected with the normal note of “hey, this looks like you meant to upload a plugin to your site. We’ve rejected it. Please don’t do that.”

    The email is actually pretty kind and explains what the plugin submission form was for and all, and how to properly upload to your own site. While it’s weird to me, that issue happens all the time, and it’s part of why we have code that checks the name and auto-prevents you from uploading things with the same name (even if it has a different slug).

    The reply?

    you bitch.

    I thought that was a little extreme and suspended the account, emailing the standard boilerplate to explain why (tl;dr – jumping to that is just not something a mature human should do).

    Our edge lord du jour snaps back:

    you call that extreme? you asked for it because you’ve rejected my plugin!

    Okay, kid. Have a nice life.

    He was never heard from again.

  • Plugins: Sex and Gutenberg

    Plugins: Sex and Gutenberg

    Look, I get that a mess of people hate Gutenberg. I like it, but that’s my opinion and that’s okay. I’m fine if you hate something I like, it doesn’t hurt me at all. What I don’t like are people being jerks to Gutenberg devs. In fact, I truly dislike people who are just mean to anyone, Dev or not. One of my weirder jobs as the Plugin Rep was balancing protecting users and protecting developers.

    It gets really weird when the developer is the user.

    I Hate Gutenberg

    That’s how we’ll start this one. Alan (not his real name) hated Gutenberg and posted a ‘review’ that was basically offering to bribe Automattic to stop making it. The forum mods very nicely said “hey man, this isn’t a real review, could you do that instead?”

    Alan…

    I was under the impression that ultimately Automattic is in control of the WordPress Core. If not them, then someone is, the buck stops somewhere. The drive to make this core is most likely coming from wordpress.com, an Automattic asset that uses themes that do not include a page builder.

    Alan on the WordPress.org Forums (post redacted)

    He went on to try and argue about usability etc. Now, to his credit, this was in the early days when it absolutely had some accessibility issues. It was also at the era that it was en vogue to bash Gutenberg … I’m not sure that era has ended yet. But basically Alan, no. WordPress.org is not going to stop developing Gutenberg. And no, Automattic doesn’t rule the world.

    The thing that was a little interesting is that Alan had left a few other turds of reviews (the eloquent “Don’t waste your time.” and using reviews for support). Five months prior, he’d got shirty about a review being moderated and not approved in a ‘timely’ (i.e. 5 minutes) fashion. Seriously. Five goddamn minutes.

    Kickbacks?

    The weekend rolls around. Most people are off enjoying the world and not WordPressing. That’s when Alan uses his second account to leave another review. His second account was, interestingly, the one he used to own his plugins. You can see how this landed in my lap.

    His other account was the one I was familiar with since he’d had a weird complaint that WooCommerce wasn’t accepting new plugins on their site a couple years ago, and he tried to buy someone’s plugin so he could be there. Alan also left a bunch of crappy reviews as that account, including a rant that someone charged people for their service (admittedly that plugin did do an asshat move by switching from free to pay, but still, the review was “They charge!” and not “The plugin sucks because …!” which is different).

    So on the weekend, Alan runs into another post by someone who mentions a plugin they’re using is conflicting with something. This was not Alan’s plugin. But Alan decided he’d fix it. He replied three times within 30 minutes that he was going to fix it, had ideas about fixing it, and had a fix. The robots (aka Akismet) flagged him as spam for the rapid posting and content since it had links.

    This happens, but it rarely requires anyone to ask this:

    Can a moderator please approve my posts above? I have posted a fix.

    Yes, I know this plugin is bad for your askimet kickbacks, but we want this, not askimet.

    Alan in the Forums on a Sunday

    Kickbacks? Akismet? I guess he realized he was caught as spam.

    And what does Alan do? He gets his other account, the non-plugin-dev one, and repeats his posts with this added on:

    Wow, speak your mind around here, and get the silent treatment. Core needs a fork soon. Ever since Gutenberg actually. Clearly (sexual?) favors are being exchanged, why else would automattic include changes that almost nobody wants, and actively hates? 

    Alan in the forums on a Sunday via his alt account

    … What?

    You Read That Right

    Yes, Alan said sexual favours were exchanged for … Gutenberg? Which had nothing to do with this plugin nor its conflict. And he wasn’t being given the silent treatment, it was a goddamn weekend, and I’ve spent over a decade telling the volunteers of WordPress to take a fucking weekend off!

    Forums reported him to Plugins and I read it on Monday. In the intervening hours, there were more complaints, from both accounts, and more rants that had nothing to do with the plugin that Alan was fixing. Given that he had already been warned the year before about making everything about his Gutenhate …

    A gif of Jan Brady saying "Marcia, Marcia, Marcia!"

    Alan clearly was incapable of (or unwilling to) restrain himself from ad hominem attacks and making everything about Gutenberg. In fact, if we go to tape, the year prior he claimed someone in Switzerland controlled all emails. The thing was, he just … posted that on .Org.

    Not as a reply, not as a comment about a plugin or theme.

    Not as related to a WordCamp.

    The post was really just “This website [WordPress.org] controls all email and are using their power to destroy my business.”

    It was clear to me what had to happen.

    Besides the fact that you were posting on a weekend and we are a 100% volunteer run service, accusing people of sexual favors in this manner is an egregiously unwelcome way in which to behave in public. It is aggressively offensive, rude, and in violation of multiple forum and plugin guidelines.

    Using a second account with which to make those comments shows you did this absolutely with malicious intent. You didn’t even wait an hour between asking your post to be approved and leaving such a comment. This behavior is an escalation to your aggressive, and incorrect, attack on Automattic regarding Gutenberg last year.

    We feel your actions demonstrate you simply are not willing to be a productive member of this community and as such we are invoking our right to remove hosting of your plugins at any time.

    Me via email to Alan

    There’s a lot more boilerplate, but more or less it tells you “Don’t make another account, and stop wasting everyone’s time here.” If you can’t play well with others, then open source isn’t going to be the place for you.

    In My Defence…

    Alan began his reply by saying he never intended that part of his reply to be public. So he … made it on a public forum, in the hopes his alternate account wasn’t blocked? Even though he knew about Slack and regularly used it to complain about being moderated.

    He went on to complain that the forum mods had a vendetta and clearly knew him from work. I have to admit, I blinked a lot there. His excuse was people clearly hated him from work and it spilled over? Why would they hate you at work, Alan? Why would someone from your job hate you so much as to make up shit about you here? He blamed the PC ‘woke’ world, and demanded to know who said such things because he had never seen any complaints. The same complaints that carried over from his work.

    Then he went on to say it was clearly a vendetta of the plugins team against non-Automattic owned ‘security’ apps. His was used by, I think, 500 or so people. Not what I consider a ‘well used’ plugin, more of a niche thing. This isn’t a judgement call! I have plugins used by fewer than that. It’s just like saying Lindys sells more cheesecake than strudel.

    That was a Guys & Dolls joke.

    But on topic, let’s see. The takeaways from Alan’s email are:

    1. Intent to be abusive? Check.
    2. Not understanding that multiple people are admins and can read posts? Check.
    3. Demanding explanation for non-related topics? Check.
    4. Claims he was never warned even though he replied to those warnings? Check.
    5. Claims we’re sensitive after accusing people of sexual impropriety? Check.
    6. Hiding behind claims of ‘woke’ abuse? Check
    7. Incorrectly assuming it’s about plugin in question? Check.

    Conclusion? Angry person who thinks he can mistreat anyone. And just for a bonus:

    Further, based on this overreaction, I can only conclude that I am correct. Gutenburg’s authors are providing sex, money and drugs to high ranking decision makers at Automattic.

    Alan via email to Plugins

    I still don’t (never have) work for Automattic. I’ve been to a lot of WordCamps and I’ve never been offered money or drugs or sex for favours doing plugin reviews. Was I always talking to the wrong people? Was there a secret orgy I was excluded from!? Now I want to know!

    Not really. None of that has any place in my WordPress life. Sorry folks, my sex life is not related to plugins or WordPress, and very much not your business.

    And for Alan, I just shrugged and moved on.