Inner Translation

A friend of mine has started working at a company that does a “CDN” system.  Frankly, I have to guess at what this means (I assume “Content Distribution Nimble-mumble-mumph [trailing off into hopeful silence…],”) but my brain really translates it to “Canadian” when I read it.

Leading to helpless giggles at serious marketing-speak phrases such as

[from a web survey] “Do you currently use a Canadian?”


[job description] “Back-end development of the next generation premier Canadian.”

I’m hoping that my friend will forgive me.


[note: I wrote this before reading reports that he was from Korea]

We’re going to find that he played violent video games, or that he didn’t.

We’re going to find that he read the bible, or didn’t read the bible, that he was a gun nut or that he wasn’t, that he drove a car or used a bicycle, that he was the child of married or divorced parents, or that his folks were local folks, or were overseas and either a persecuted minority or just normal people. We’ll find that he studied hard or was nearly failing classes, had had a girlfriend or didn’t or had recently broken up, that he’d been outgoing and social or was mostly quiet and reserved and spooky. We’ll find that the guns he had were either stolen or acquired perfectly legally, that the clerk who sold him the ammunition thought something was wrong or didn’t think anything at all of the transaction.

We’ll find out what he wore, what he ate, what he read, what he studied, the music that he listened to, his brand of toothpaste, his weight, his political affiliations, the church he went to, his dorm room number and the names of his roommates. We’ll know his eye color, length of hair, bank account balances and how much he owed on student loans.

We’re going to find that he used the Internet. Hell, everybody uses the Internet.

In the end, we’ll know everything that doesn’t matter, and every bit of it will be used to elevate, vilify, prove and disprove whatever people want, and it won’t mean a thing.

The busy work of __saving US from OurSelves

What do BOOL, Bool, BOOLEAN, LOGICAL, TRUTH, and even (God help me) CHOICE have do to with each other? Where did CHAR, Char, _char, SCHAR, UCHAR, BYTE, SBYTE, UBYTE, CHARACTER, TCHAR, _TCHAR, _CHAR, _T, _C, CHR, and GLYPH come from? Do we use DWORD, ULONG, INT, Int, NUM, or (hey, I know it’s a stretch) int for that ten-element-array index?

I’m sorry, I said array. I really meant PCTSTR, or possibly UBYTE[].  (The last time I gave this talk, someone in the audience cried out “foo::ptr_type” and then got beaten up by a bunch of XML guys who’d wandered into the wrong lecture.  It happens.  I have to admit, it’s even enjoyable).

I love porting surfaces. Spartans aside, there’s nothing like sticking two libraries with conflicting ideas of BOOL into a bottle and watching fur fly (“In this corner, Ladies and Gentlemen, BOOL is wearing the mask of a UCHAR, in the otherrrr it’s a ULONG for some Godforsaken reason”). The types circle each other for a while, then pounce.  After a while the inside of the glass gets pretty well coated and you can barely make out what’s going on inside. Welcome to my life.

A lot of this stems from the phase of a project where some people feel the uncontrollable urge to type something. Rather than (say) write documentation, they write useless source code. It’s easy to justify this kind of crap because it’s fear-based. “I’ll isolate the entire project from evil ints and characters; let’s have a portability layer over stuff that the language standard guarantees, because you never know when space aliens are going to come along and suddenly make all of your ints 17 bits, your characters six-and-a-half (with parity), and turn your pointers into obliterating agents of chaos should you even think of treating them as longs. Sorry, I mean IntPtrs.

“Super Type Defender Man is here to savvveee you! No, don’t thank me, find your local ANSI committee reps and thank them. Now my work here is DONE. Or Done. Or maybe it’s __finished…”