Removing the uppercase P filter…


So — people got a little hyped about the capital_P_dangit() filter that is activated in the WordPress v3.0 core.

For those of you that have been hiding under a rock for the past few days, this filter keeps you from “misspelling” WordPress.  More accurately, it changes your “misspelling” of the word to the “correct” spelling, without letting you know that it’s doing so. It’s just a little snip of code that Matt Mullenweg himself submitted.  It doesn’t seem like it should be a big deal, but well — to some of us, it is.   We write our content, sometimes we intentionally misspell words.  Some of us like to make a point of NOT using the “correct” capitalization for WordPress, sometimes for reason, sometimes not.  But it’s our choice.  It’s really as simple as that.

It it REALLY a big deal?  Well, honestly — no.  I don’t think it’s a huge thing.  It’s something Matt wrote, probably on a whim, and didn’t take into consideration that it might change the message of someones writing.  He probably didn’t think about it, cause it is just a silly capitalization thing.  Perhaps he forgot that WordPress is primarily used by people who wish to express themselves and that they might be terribly bothered by someone changing ONE OR TWO letters of their content.  Frankly, and I think most people will agree, it’s such a silly thing it should have simply been removed from the core for 3.0.1 — problem solved, everyone is happy, content retains it’s integrity and a straw is removed from the back of the community camel.

See — that’s where something happened.  Rather than applying logic to the situation, someone decided to let ego dictate their decision.  They dug in and opted to stick behind a silly decision, which is normally fine, but has no place is a large community project like WordPress.

Anyway …

I pretty much kept clear of the Twitter discussions, but finally had to say something.  My comment:

@nacin @chip_bennett emoticons & curly quotes are typically an optional enhancement. Forced “P” is ma.tt forcing his vanity upon us.

http://twitter.com/flashingcursor/status/18086987146

The response to this from Andrew Nacin pissed me off:

@flashingcursor No, it’s not. You can hold whatever opinion you want, but “I hate Matt” is an invalid argument if there ever was one.

http://twitter.com/nacin/status/18103976774

I’m not sure where @nacin saw “I hate Matt” in my comment… But that response, and the many like it,  is what I find amazingly disturbing.  It’s become the instant response to any resistance or comments made about core changes in WordPress, no matter how basic, civil, or well thought-out and proper the resistance.

As I said before, you are in /complete control/ of your site. It’s a single line to remove a filter. If you don’t like the filter, vote with your feet or with a plugin. If the function cause a non-trivial number of people to avoid 3.0, leave WP, or install a plugin to deactivate I would seriously reconsider it. In the absence of that, there are a 1,001 better places to focus my attention with regards to WordPress.

This response from Matt Mullenweg, quite literally, had me rolling on the floor laughing.  Realistically, there are probably only 3 or 4 people who wanted to force the spelling of WordPress to its correct capitalization versus the hundreds that didn’t care for it (based on the total number of downloads of one of the “fix” plugins).  In the time it took Matt to make that comment and return to the 1,001 better places to focus his attention, he could have solved the problem.

Andrew Nacin has also expended an amazing amount of time arguing his point that “it’s the correct spelling” — and I think we all understand his argument.  But he’s arguing apples while we’re arguing oranges.  Personally, I make an effort to spell the brand name as it’s intended to be spelled, and it makes total sense to me why it needs to be that way.  The argument isn’t over that fact.  The argument we’re making is that many articles have been written on the subject and, unbeknownst to the authors, their articles read like a comedy skit because, effectively, Matt and Andrew have reached in and changed their writing.  We’ve stepped out of the arena of bugs and technical glitches and moved into the alterations of creative works — which is probably worse.

A few simple options:

  • Get rid of the code – easy.
  • Include the code as a deactivated plugin – not as easy, but it already exists, so …

Fact:  I put Matt Mullenweg and the other core developers up on a pedestal.  I think they’re great people and their creation has done AMAZING things for the world, the internet and for me personally.  I love what you’re doing, I love that you’re doing it under the GPL and making it available to everyone.  I understand that you often make decisions and prioritize things in ways that I don’t always agree with, but I know you’re doing it for the greater good of the project and I understand and respect those decisions.  This is NOT one of those decisions.

Watch this little cartoon and get over your egos boys.  I’d much rather laugh with you than at you.

A shorter version of the video below… Seems I went a little overboard with the first one.

To quickly remove the filter, you can add the following code to your themes function.php files:

remove_filter( 'the_content', 'capital_P_dangit' );
remove_filter( 'the_title', 'capital_P_dangit' );
remove_filter( 'comment_text', 'capital_P_dangit' );
Enjoy.

15 thoughts on “Removing the uppercase P filter…

  1. I can’t seem to find my reply on Twitter offering a mea culpa for the mischaracterization. I did write one, I’m just wondering if it didn’t go through. Sorry about that.

    The filter broke a few images and links for a very limited audience, but it is important to note that this is addressed in 3.0.1, so you can go back to the “infringing on on our content” argument (I think I’ve made my position of disagreement clear there enough).

    By saying “very limited audience,” I’m estimating it caused less damage and grief than an incompatibility we had on installs running on servers with PHP 4.4 and 5.0.5, which rendered the wordpress admin pretty much completely broken. That bug was fixed in 3.0.1 as well.

    For the record, wordpress also “corrected” smart quotes, ellipses, and en-dashes for you. It didn’t tell you about those either, nor did it offer you the ability to prevent them without removing a filter. It simply recognized your intent and offered the change transparently.

    • For the record, wordpress…

      “wordpress”?

      also “corrected” smart quotes, ellipses, and en-dashes for you. It didn’t tell you about those either, nor did it offer you the ability to prevent them without removing a filter. It simply recognized your intent and offered the change transparently.

      Replacing a normal quote mark with a “curly” quote mark is completely cosmetic. Intent is not changed, since the user intended to use a quote mark, and WordPress outputted a quote mark. Likewise for ellipses and em-dashes.

      There simply exists no valid argument for assuming that a user intends to capitalize a letter when the user himself fails to do so.

      I should know: Word, my BlackBerry, and any number of other applications and devices attempt (incorrectly) to “correct” my capitalization in various circumstances. And in all such cases:

      1) I am able to undo the attempted correction
      2) A user-configurable option exists to prevent the attempted auto-correction.

      Neither point is true for the capital_P_dangit() filter.

      • Chip — I’m going to guess that there’s a filter on this blog to lowercase my spelling of WordPress.

        There simply exists no valid argument for assuming that a user intends to capitalize a letter when the user himself fails to do so.

        Of course there exists a valid argument — one spelling is wrong, one spelling is right. It’s black and white. Sorry folks. And no, it’s not apples and oranges (as suggested in the body of the post) for as long that one of the more prominent arguments out there is how intent could possibly be determined.

        Andrew Nacin has also expended an amazing amount of time arguing his point that “it’s the correct spelling” — and I think we all understand his argument.

        Maybe an hour total, given a few blog comments, a few mailing list emails, a few Trac comments, and a few Twitter messages. I would love to have the hour back, but at the same time, I enjoy engaging the community, especially on the Argument of the Week. :-)

        • My issue with this isn’t the filter itself. It’s that when presented with upset members of the community, a few people such as yourself dug in and told us why we the community were wrong, instead of a simple response such as “sorry ,didn’t think it would cause an issue. We’ll take care of it”. It’s the ego and bravado after the fact that is troubling.

          The fact that there is a proper spelling (based on the copyrighted name) does not dictate how someone writing content displays the word. the spell check on my HTC Incredible recommends the correct spelling of words as I type, but I am free to use one that is ‘incorrect’ if I damn well please. You as a core developer have no right in determining what and how I choose to create content. None. Period. That, sir, is black and white.

          And for what it’s worth, I haven’t seen any community members outside of the core dev’s actually PRAISE this new addition.

        • Of course there exists a valid argument — one spelling is wrong, one spelling is right. It’s black and white. Sorry folks. And no, it’s not apples and oranges (as suggested in the body of the post) for as long that one of the more prominent arguments out there is how intent could possibly be determined.

          The only correct spelling is the spelling as intended by the author. If I’m giving an example of the incorrect spelling of a word, then the correct spelling is, in fact, the misspelled version of the word. If I’m displaying some sample code, where the function does not use the CamelCase version of WP, then the correct spelling is the spelling used for the function, as I’m writing about the function and not about WP.

          Put away your ego, apply your own argument in various different situations and everything should become very clear. Instead of digging in and alienating people over something that fixes NOTHING and breaks the community, set your ego aside, pull your head out of your ass and fix the problem.

          Nacin, I’ve dealt with you in the past and I think you’re a very pleasant, intelligent, and talented person. This just doesn’t seem like you. I hold you and your skills in very high regard, but I’m no longer very confident in your decision making ability. I’m honestly feeling quite sad. I hope your ego and stubbornness haven’t eclipsed your intelligence.

        • Of course there exists a valid argument — one spelling is wrong, one spelling is right. It’s black and white. Sorry folks.

          No. That absolutely is not a “valid argument” for editorial modification of end-user content without the user’s knowledge or consent. If it were, then every spell-checker in existence would implement auto-correction exactly the way this filter works: silently, without notifying the user or asking for his permission. If it were, “WordPress” would not be the only mis-spelled (or mis-capitalized) word to be corrected.

          At this point, I am absolutely flabbergasted that such ardent defenders of free software principles can take such a stance.

  2. Funny enough, I have been somewhat under a rock the last few days (family funeral out of town) so I only caught a bit of this argument. I agree that on it’s face, there isn’t much to be concerned with. It’s a simple P. But the idea behind it (determining and altering content) and also the response from Matt and Andrew was disheartening, to say the least. I’ve mainly stayed out of the arguments going on in the WP community, if for no other reason than I just don’t have the time to argue and debate anymore. But it’s just another step towards a “you’re with us or you’re against us” mentality that some of the WP core has taken on.

    • My condolences, man. Hope you and you’re family are doing okay.

      You’re spot-on about the “you’re with us or you’re against us” mentality. Sadly, I believe that attitude starts at the top. It’s bewildering that Matt openly admits that people leaving in droves is the only thing that’ll convince him to change his attitude. Unhappy community members should be enough.

      Perhaps he thinks nobody out there will ever stray away and create better WordPress… Maybe he’s right – but even his own inner circle has started to whisper descent. The straws keep piling up…

      • What’s so funny about this whole thing is that Matt isn’t gathering more people to the “with us” side of the argument. He and the rest of the core team’s decisions instead are peeling more and more people away in to the “against us” camp.

        While Gil has disagreed with me on issues in the past, we’re now in the same “against us” camp as far as Matt (or Nacin at least) is concerned.

        That has been my point to Chip Bennett for quite some time as well. While people criticize me for the way I present my arguments, they’re treated the same way as Chip or Gil’s well reasoned and carefully worded discussions.

        Neither matter to the core team anymore (at least from what I can tell) so why avoid inflammatory headlines that get people’s attention? Why not blog publicly about the next exploit that’s found?

        The continuing campaign of ideological purity is driving more people out of the community and only inspiring more behavior that seems to drive them nuts.

  3. As a business owner, I know that it would drive me crazy to see people spell my company name incorrectly constantly. The code only changes one word. My iPhone came with the auto-correcting of “iPhone” built in…..to help me remember that it isn’t “iphone”. I put these on the same tier.

    HOWEVER, if a few self serving lines of code in my software caused this much of an uproar….I would remove it.

    Just my 2cents

    • If WordPress implemented a fix that behaved the way that the iPhone does – that is to say, the industry-standard way that spell-checkers behave – then very few people would have a problem with it. Any of the following would have been more acceptable:

      1) Create the filter as-is, but bundle it as a (disabled-by-default) plugin with the standard WordPress download package.

      2) Add it as a spell-check rule.

      As it is, however, content, upon display, is filtered, without either the knowledge or consent of the owner of that content. The oft-repeated “iPhone argument” only serves to demonstrate how poorly this capital_P_dangit filter was implemented.

  4. I have voted against the core developers’ decision (and their behaviour after that) with my feet.
    I had recently got my Windows Live Spaces blog transferred to wordpress.com, and I did like their software so much as to tart making plans to use it on my site. However, yesterday I read the whole story about this issue (i.e. capitalization automatically forced by the core), I killed my blog, leaving the following note at wordpress.com:
    ———————————————–
    I have just read all Matt Mullenweg’s messages, as well as those by Andrew Nacin, and other entries in various discussions on the capital_P_dangit filter. Before that, I was going to download WordPress, install it, and use it for my new website. Now, however, I am not going to use WordPress for my website, nor publish anything here at wordpress.com. I am literate enough on the technical side, so I would be able to remove the filter if I were to use the software on my website; however, this is a matter of principle in my view. Guys, you have made a fundamentally wrong move.

    Sincerely,
    Maksym Kozub
    ———————————————–

    (For the record, I did not even use that word in my blog, not in any URLs etc., so I was not directly affected by this change in their software. Voting against this tacit implementation of capitalization has been a matter of principle for me.)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>