1. Original Entry + Comments2. Write a Comment3. Preview Comment

August 10, 2011  |  Four-letter words in unexpected places  |  3121 hit(s)

I've noted before that we have tools to help us find geopolitical issues in our docs. This includes profanity. Not that this comes up a lot, of course. But the point is both to guard against unintentional uses, like maybe a writer who's in a hurry and copies something out of an email thread that includes some dubious language. Or to guard against profanity in places where people (editors, say) might not think to look.

And indeed, I personally ran across a couple of such instances in the last few weeks, much to my amazement. (Actually, amusement, and you'll see why.)

The story involves GUIDs, or "globally unique identifiers." A GUID is a 16-byte/128-bit number; that's 3.4 × 1038. You use GUIDs to identify things because, given this huge pool of numbers, and the fact that GUIDs are generated randomly (for practical purposes), the chance of two GUIDs ever colliding is infinitesimal.

So? Well, for humans, GUIDs are normally represented like this:


That's a 128-bit number in hexadecimal (base 16, useful for computers), which uses the digits 0–9 and the letters A–F to represent numbers. You can see from the example that a GUID will often have consecutive letters.[1] And any time you can put letters together, you can, advertently or otherwise, form words. And when you can form words, ...

The massive internal database we use to store our work uses GUIDs as IDs for everything — documents, pieces of art, code snippets, everything. So for example, while we're authoring, if we want to create a link from one topic to another topic, we specify the GUID of the target topic. (Of course, the tools do all this for us; we don't have to actually know GUIDs or anything.)

As I say, twice in the last week or so I've run our geopolitical check tool and it objected, vehemently, to what it fingered as profanity in the docs. This was the first one:


Namely, a GUID (probably in a link) that included the string "CACA". This amused me, because apparently you can take the boy out of the 2nd grade, but you can't take the 2nd grade out of the boy.

The second hit was a little more mysterious. Again the tool had tripped over a GUID; this time it was this:


The sequence of letters that had raised the alarm was "BBCD". Uh ... what? But the tool said it was profanity, so I went looking. And sure enough: BBCD is a derogatory term in Britain (I guess). Wow, interesting catch.

Of course, there's nothing for us to do here. First, the character strings are in GUIDs, which we can't change. And anyway, customers never see these; they're used internally for identifying "assets," as they're called, but are converted to other types of identifiers (comparatively tame stuff like http://msdn.microsoft.com/en-us/library/fddycb06.aspx, for example) during the publishing process.

This whole business got me to thinking about how many offensive terms we could construct out of the combination of letters A–F (repeats allowed) with 8 + 4 + 4 + 4 + 12 places to play with. Not so many, probably. (Lots of words, but not so many offensive words.) Which was why I found it all the more interesting to have come across two examples in just a few days.

More reading
Online GUID generator

[1] There are 8 + 4 + 4 + 4 + 12 places, all of which could have letters. That's a lot of combinations of letters. Of course, odds are against this. Colleague Ron does the math: "Since the range of letters in a GUID is 0-F, the probability of consecutive digits being in the range A-F decreases sharply as the total number of digits increases. (About 14% for 2 digits, about 5% for 3 digits, less than 2% for 4, about .75% for 5, and about .27% (or one time in four hundred) for 6, and .1% (one time in a thousand) for 7. The number of possible combinations is exponential — 36 for 2 digits, 216 for 3, 7,776 for 4."

JaAG   11 Aug 11 - 7:26 AM

You said caca! <snort!>

Brian   11 Aug 11 - 7:45 AM

Anecdotally, I spent the last 15 years thinking that term was pronounced "gwid." It's one of the hazards of being a book editor -- you see the terms all the time in print, but when you're on the phone with the author, you're usually talking about scheduling or publishing minutia, not so much the content. It was only when I started doing tech writing in your system that I heard somebody say "goo-id," and realized I'd been pronouncing it wrong. I'm still not used to it; "gwid" just sounds less silly to me. Of course, I have no problem pronouncing "GUI" as "gooey."

Kemp   11 Aug 11 - 12:46 PM

Do you get issues with flagging descriptions of extended versions of function calls whose name ends in 's' (such as GetFileAttributesEx)?

mike   11 Aug 11 - 12:56 PM

@Kemp -- I haven't yet! I wonder if it's smart enough to ignore API names. (Altho as Scott Berry has pointed out, maybe API names should go through a vetting process; he's found any number of spelling errors in as-yet unreleased API names.)