Jan 24, 2021

This was initially written for my regular column in the
Brown Computer Science departmental magazine, conduit!,
for the
Fall 2003
issue. I think it’s far too much fun to leave hidden in such an obscure place.
The prose is unchanged since then (so some of the classification information
may well be incorrect); only the marginal notes are new.
The sender’s name was in all-upper-case, and the subject
line read, “Not exactly…”.
Spam.
But I’m glad I opened it anyway. “This is not exactly your
normal query…”, the message
body began. It was from an upstanding citizen at the NASA
Johnson Space Center, asking
for… the Export Control Classification Number (ECCN) for
DrSchemeNow DrRacket., a Scheme programming environment I
helped develop.
The what for what?!?
It transpires that a tasteful astronaut (name withheld to protect the innocent) had loaded
DrScheme on his laptop for use during his free
time in space.Turns out he was working through How to Design Programs.
He was (a) going to be on the International Space Station (ISS) and (b) launching a
hard drive image from Russia. The ISS is a multinational enterprise and Russia is, well, another
country, so the act of sending software in both instances involves an export. Both, consequently,
need an ECCN. (I wonder if there is some tacit assumption here that outer space, or at least the ISS,
is a foreign land. I wonder if there isn’t some
group squirreled away trying to determine the
equivalent of nautical limits in space.)
The US government does a remarkably good job
of publishing documents on the Web; anyone
who’s had to deal with the IRS or the lucky few
who’ve had to contend with the INS will grudgingly admit this. These are sometimes no more
than OCR-scanned copies, but the scanning yields
enough clarity that Google can find the documents. I can’t begin to imagine what this process
must have been like ten years ago. (Probably a lot
simpler: I’d have written off for an official document, then returned to my regularly scheduled
work.)
Anyway, accessing prose is not the same as understanding it. The second paragraph of the first document I read began “The CCL is contained in
Supplement No. 1 to part 774 of the EAR.”
It was going to be that kind of day.
I have some layman’s thoughts about such prose.
It doesn’t look like natural language at all. I conjecture it’s because natural language is rife with
anaphoric references. Letting context and a rich
language of reference “do the talking” leads to
higher communication bandwidth, but it’s hell on
disjointed documents…. But this is beginning to
read like one of Eugene’sThat would be natural-language processing maestro
Eugene Charniak, who had a regular column in conduit! that was
the inspiration for mine. articles, so I should stop
this digression now.
The ECCN system is quite simple once you get
the hang of it. Numerous artifacts, from nuclear to
software, are given codes such as 14D993. These
codes determine the range of permitted distribution and the licensing demands on those who wish
to acquire them. Everything else is assigned the
default code EAR99, sometimes designated NLR
(No License Required). So it’s simply a matter of
reading enough documentation, slotting your
product, and finding a code. This is a bit like saying that feeding your pet octopus is simply a matter of pulling aside the arms, placing the food in
the middle, then retracting your limb. Easily done,
but you may lose an organ or two getting the hang
of it.
Reading these documents was not without its rewards. I discovered, for instance, that EAR 740.13
(d) (3) (ii) (A) differs from EAR 774 Supplement
No. 2 (2) (a), though they describe the same thing.
The former document is dated later, yet leaves out
a key provision included in the latter, the recognition that software may be sold electronically! Better still, I found that ECCN category 14D993
specifically restricts the export of “program”
proof and validation “software” using mathematical and analytical techniques and designed or
modified for “programs” having more than
500,000 “source code” instructions. Beware, all
you verification researchers—don’t get too ambitious!
Having done my research, I determined that we
fall under License Exception TSU (Technology
and Software — Unrestricted), though it all gets a
bit sketchy here because our software is not specifically sold. (The concept of free software
doesn’t seem to be in the ECCN vocabulary.
Cheap political crack omitted here.) This didn’t
necessarily mean we were EAR99, and EAR99 is
an ECCN, whereas TSU isn’t, and NASA had
asked for an ECCN. Mustering great courage, I
called the encouragingly named Outeach and Educational Services Division of the US Commerce
Department. After only a few minutes, I was connected to a gruff counselor.
“Can I help you?”
“Ah, yes, I was hoping to get a quick clarification
on an ECCN classification.”
(gruffer still) “Yes?”
(deep breath) “If I find that my product falls under
License Exception TSU under part 774 of the
EAR, can I assume it has the ECCN of EAR99?”
I believe I did this without inhaling.
These are the moments that test the mettle of great
men. Like Major Major’s father, my counselor
was made of stern stuff. He paused for just a moment, just long enough to
accord respect to someone he clearly perceived to be a fellow numbers-and-policy wonk. And then, in a voice rich in
cameraderie, he said, “You know, I’ve been trying
to determine that for five years myself!”
Being excepted from a license was not the same as
not requiring a license? In the logic of the US government, did the Law of the Excluded Middle not
apply? What was the difference between the two?
Syria.
No, seriously. The difference really is Syria. TSU
permits export to Syria, but EAR99 does not.
My counselor told me this with glee. Apparently I
had hit on one of his favorite trivia questions, because, now really warming to the topic, he informed me that he had asked this very question of
many of his colleagues. Some had incorrectly
identified the two; others, quicker on the draw,
had said that they were indeed different but had
recommended the use of ECCN 4D994. As everyone knows — shucks, by this point even I knew —
this was a contemptible response, because 4D994
permits the export of only specific software products. And so on.
Anyway, this story has a happy ending. We appear
to meet EAR99. NASA Johnson has acknowledged receipt of our ECCN. I’ve been in touch
with the fine astronaut. DrScheme will soon be
happily beta-v-cs-reducing expressions in outer
space.
Where has your programming language been today?