"Smart" quotes are a pox upon the face of the Earth

My least favorite byte is 0x00, for obvious reasons, followed closely by 0x11 and 0x13, for other obvious reasons, but really, I'm developeing a deep, abiding, years-long hatred for the sequences 0xE28098, 0xE28099, 0xE2809C, 0xE2809D and their fancy pirate names \u2018, \u2019, \u201C and \u201D.

When I type a god damned double-quote, you know what I want to appear? A god damned double-quote, a single-ducking-byte 0x22 thank you very god damned much. If I wanted some Unicrud up in this shit, I'd have ducking typed it. Did I stutter?

So because we (or at least I) still live in a world where HTML is a thing that one must occasionally actually type by hand (like an animal) and because the iOS on-screen keyboard is a monstrous horror that makes that (to be generous) extremely annoying, I have a few keyboard shortcuts, such as

That used to do what it said. See those straight up-and-down quotes there? Yeah, that's what I typed. I ducking typed that. But guess what! After the latest iOS upgrade, when I type ahref, what gets inserted? Waaaait for it...

Ooooh, curly!! Sure, that's close enough to what I meant. You know, except for the part where it doesn't actually work at all.

Even when you try to type an actual quote on the keyboard, you have to jump through an extra hold-and-pull-down-the-key hoop:

I'm surprised -- no really, I'm actually surprised -- that it's not also turning my hyphens into one of Unicrud's Nine Billion Alternate Names For Horizontal Obsolescent Latin En Dash.

And then of course WordPress spreads an extra layer of creamy turd on top of the whole sundae. Here are only the things I've discovered so far to make WordPress leave your god damned characters alone. I'm sure there are more lurking, and more sneak in with every release:

remove_filter ('the_content', 'wpautop');
remove_action ('admin_print_styles', 'print_emoji_styles');
remove_action ('wp_head', 'print_emoji_detection_script', 7);
remove_action ('admin_print_scripts', 'print_emoji_detection_script');
remove_action ('wp_print_styles', 'print_emoji_styles');
remove_filter ('wp_mail', 'wp_staticize_emoji_for_email');
remove_filter ('the_content_feed', 'wp_staticize_emoji');
remove_filter ('comment_text_rss', 'wp_staticize_emoji');
add_filter ('emoji_svg_url', '__return_false');

What the hell is wrong with you people. I can't even.

Previously, previously, previously, previously, previously, previously.
Tags: , , , ,

37 Responses:

  1. Yuma Tripp says:

    Lmao@creamy turd

  2. internetimal says:

    They specifically noticed what makes you scream.

  3. P says:

    Have you tried the DevKey keyboard from the App store? I don't know if it will respect your shortcuts or not but it puts the common html characters like angle brackets and straight quotes right up front so it might help eliminate that monstrous horror.
    https://itunes.apple.com/us/app/devkey-developer-keyboard-for-programming/id961304986?mt=8

    • jwz says:

      I have not, but "switch keyboards when I want to type a less-than" does not sound like less typing than just searching around for the less-than. And since that keyboard disables autocorrect, it's not a keyboard you'd want to use for normal typing.

      • P says:

        I don't know, wouldn't you just switch to it only when you "must occasionally actually type [HTML] by hand"?

        • jwz says:

          Which is like, all the time. If I wanted to type a link in here, I'm typing 95% english, except for the one time I needed HTML. It's not like I'm coding web sites in a text field. It's occasional. But frequent enough to be annoying.

          You say this like you've never typed a link in a comment field. Who are you people.

          • Nick L says:

            Google plus the trend towards novelty DNS names for everything made this much easier. When I write about acme.sh it doesn't matter whether you assume that's the name of a shell script or a Web server, it's both. It's only a shame that modern pop songs aren't yet having the foresight to buy names like my.lovely.horse or ibless.therains.downin.africa

  4. the hatter says:

    I second-guessed this as a new iOS 11 feature when a user suddenly couldn't get simple commandline things to work, after someone else's sharp eyes spotted " was maybe 2 pixels different from what had been typed. I should probably tell twitter rather than just specific iphone-owning geeks who I know use console sessions. But for added google juice... Smart Punctuation can, thankfully, be disabled in Settings > General > Keyboards

    the hatter

    • Aaron says:

      Thanks for that. It'll preemptively stop me wanting to murder my phone after the update.

    • jwz says:

      Thanks, that does stop it from rewriting the real-quotes already embedded in my abbreviations.

    • Miguelito says:

      Yeah I had to disable it else trying to do anything on Unix via prompt or nx was nearly impossible. It also made -- do -^? When you hit two - in a row.

  5. Wout says:

    Looks like all that integration testing Apple is providing over Android is paying off for not-jwz users ;)

  6. Smylers says:

    Yeah, this stuff is awful.

    It doesn't help in general, but for your specific ahref case, you can just completely omit the quotes in the expansion: as long as the URL doesn't have any spaces in (and, really, what kind of person does that?), the quotes are unnecessary for both browsers and spec compliance.

    Perl 6 ‘solves’ this problem by allowing curly quotes as part of the language:

    $ perl6 -e say\ “hello”
    hello

    • Chas. Owens says:

      Yeah, but Perl 6 can't store "ex[301]" (it stores "x[e9]" instead).

      • jwz says:

        Does anyone think that Perl 6 is ever going to actually be a thing? Or is this like the people who were still releasing new versions of AmigaDOS in like 2007?

        • Chas. Owens says:

          Depends on what you consider "a thing" to be. I don't expect it get any more popular than any of the other dynamic languages. As it gets faster (their focus was on features not optimization until recently), it may start to eat into the places where Perl 5 still exists (which is still a surprisingly large number of places). I would say it is a better language than Perl 5 (except for the current NFG implementation).

          • jwz says:

            Perl 5 has a massive installed base, and the language itself has been stable for decades. Perl 6 is incompatible with it in everything but name. It's basically a new language starting from scratch with no users and no libraries, plus the baggage of Perl 5's reputation. Why does anyone think it will ever catch on?

            • Chas. Owens says:

              Stockholm syndrome? Seriously though, there is a massive debate in the Perl community about exactly this. There are diehard "Perl 5 for Life" people, and there is a large (and vocal) contingent of people who want to move to Perl 6. Personally, I am still very much in the "show me the compatibility layer you promised" camp. The things that keep me hopeful (off the top of my head) are:

              * Insanely good Unicode support (minus the whole inability to round trip non-normalized files thing)
              * the parallelism built into the loops and operators (not present in the implementation now, but the language supports it)
              * rules (they are to Perl 5 regexes what Perl 5 regexes are to other string matching libraries)
              * slangs (the language is designed to be infinitely moldable, so a Perl 5 slang is possible)

              • J Greely says:

                For me it's simple: I'm still using some Perl scripts I wrote 25 years ago, with little or no modification, and every time I try another scripting language, it's either hard to do something basic, or there's no working library to do something complicated.

                If it weren't for the dependency hell that CPAN has devolved into, I wouldn't have anything to complain about at all. There's just no incentive to switch to anything else.

                -j

            • raiph says:

              > Perl 6 is incompatible with [Perl 5] ... no libraries

              I think use Unicode::Collate:from<Perl5> demonstrates that P6 IS sufficiently compatible with P5 in practice, and "has" (can use) thousands of libraries, even if naysayers (and even the current official perl docs) suggest otherwise.

              > the baggage of Perl 5's reputation

              By 2003 Mozilla had developed a reputation for producing bloated code. But I don't think all the Mozilla brand had left by 2003 was "baggage". I think an analogous situation applies to Perl.

              > Why does anyone think it will ever catch on?

              Because the most doomed are the craziest optimists? Why did I think it was worth volunteering to help produce the Mozilla 1.0 Guide back in 2002? And does it even matter what anyone thinks before the black swan swims?

        • Nick Lamb says:

          The Amigans are still going, as the stakes get smaller the infighting gets ever more vicious. This year the AmigaOne X5000 shipped, which is basically a mediocre PowerPC SOC welded into a desktop form factor. It's multi-core, their OS isn't, it's 64-bit, their OS isn't, but hey, what's a bunch of entirely wasted processing power between hobbyists ? And anyway, they have a fool-proof plan to add multi-core support, it's completely nailed down, except that they haven't figured out how it will work, what it will do, or when it will be available. But other than those minor technicalities it's a done deal.

          I suspect Perl 6 will join HURD in having jumped from a future technology we weren't quite ready for to an obsolete technology we don't need any more without ever quite being a technology anybody actually used for anything that mattered. At least the Amigans always have a past to look back on fondly.

          • Bill Paul says:

            Holy fucking shit! This thing uses the Freescale/NXP P5020!?

            That's a bizarre choice for a desktop system. I mean, yes it's a multicore PPC64 chip, but its main selling point is supposed to be the built-in DPAA networking features. It has multiple 1Gbps ethernet MACs, a 10GbE MAC, hardware queue manager and buffer manager, and hardware packet header parsing, packet classification engine and traffic shaper. It's supposed to be used for building things like "enterprise" firewalls, not desktops. And it doesn't look like they're using any of those features. :(

            • Nick Lamb says:

              The have prototyped and supposedly intend to build a P5040 version. Yes, that's two extra cores, for an operating system that still has no clue how to spin up even one extra core. But it costs extra so it must be better. And you could boot Linux on it (or, you could use the extra money to buy a faster x86 Linux mini-ITX cube).

              Not only do they not use all the fancy onboard networking of that SOC, they actually provide a RTL 8139 PCI card because that has working Amiga drivers. So you've got all this blistering fast 10GE networking gear, and it's sat idle while the chip uses 32-bit parallel PCI to shuffle packets to and from a $1 network card that can just about handle 100Mbps.

    • Douglas Knight says:

      That works if you're writing for a browser, but most of the time you're writing for a program that will mangle your input. For some versions of wordpress comments <a href=foo/ > will be interpreted as <a href=foo />, which is fatal.

  7. jdelic says:

    Smart Punctuation can, thankfully, be disabled in Settings > General > Keyboards

    ^^ this bears repeating. Smart quotes shouldn't exist in the first place, but at least they're controversial enough that Apple gives you a choice. Now, if I could get back my headphone jack...

  8. Quote Smart Quote says:

    I used to hate technologies with the letter J in their name. Then technologies with the letter X in their name. Nowadays I've added "Smart" to the set.

  9. thielges says:

    Fancy quotes are a scourge in tech documentation too. You can't easily copy-paste an example code fragment containing those "less useful than emojis" fancy quotes.

    • jwz says:

      Less useful than? Less-than Three you mean! It was awesome to discover that my robots also can't post text like "(here on Oct 5)." to Facebook -- the period has to go inside the parens or it gets turned into some kind of leering smiley nonsense.

  10. valgonzarp says:

    But… design! Letters, characters, fonts, print, you know. And stuff. Important!

  11. dano says:

    I am old enough to remember when we had to carve our 7-bit ASCII characters out of lead. Lead ingots. That we mined ourselves. But at least we got our gawdam double quotes right.

  12. Jo Bangeborg says:

    That '__return_false' made me cry.

  13. Otto says:

    You're really not going to like Gutenberg. I can tell.

    If you want a working solution for any problems with WordPress specifically, email me. You know my email. Happy to help.

    • jwz says:

      Thanks. And that seems a fair prediction, alas.

      What kind of baffles me is that the WordPress developers are putting so much effort into "You can type WYSIWYG into a static sidebar widget!!111one" but there is still no rich-text comment field built in. How does anyone care more about the former than the latter?

      (Are there any rich-text comment-field plugins that aren't goatse-sized security holes?)

      • Otto says:

        Actually, the default comment field allows quite a lot and has been argued over for a long time. The thing is, everybody wants pretty editors, so.. expect major change in the posts first. Look up "Gutenberg". There's a plugin to try it. You won't like it, if you like HTML. Really. But, if you don't care for "code" in your text, it's... Interesting? Different.

  • Previously