Jameel Jaffer and Brett Max Kaufman in Slate.
James Clapper, the director of national intelligence, has been harshly criticized for having misled Congress earlier this year about the scope of the National Security Agency’s surveillance activities. The criticism is entirely justified. An equally insidious threat to the integrity of our national debate, however, comes not from officials’ outright lies but from the language they use to tell the truth. When it comes to discussing government surveillance, U.S. intelligence officials have been using a vocabulary of misdirection—a language that allows them to say one thing while meaning quite another. The assignment of unconventional meanings to conventional words allows officials to imply that the NSA’s activities are narrow and closely supervised, though neither of those things is true. What follows is a lexicon for decoding the true meaning of what NSA officials say.
A lexicon for understanding the words U.S. intelligence officials use to mislead the public.
If you have been following the news you must be aware that Aaron Swartz, a social-networking pioneer, academic researcher and clumsy hacktivist, has killed himself. Though he left no suicide note many people attribute his death to the fact that he was facing federal charges that could have sent him to prison for many decades.
I feel obliged to comment since I responded to the original news of his arrest with a somewhat sardonic post called “When Ethicists Steal.” (Swartz was a Fellow at the Harvard University Ethics Center and the title referred to my long-held suspicion that self-styled academic “ethicists” just come up with rationalizations for their gut feelings and present them as scientific results, far superior to the ethical opinions of mere mortals.)
Swartz downloaded a vast number of academic articles from the JSTOR database. He apparently believed that they should be freely available to the public. Who knows? Maybe he was right, given that the public probably paid for the research with their tax dollars.
However anyone with any involvement with computers should understand that it is not OK to enter a network wiring closet without permission in order to make an unauthorized connection to the network. Surely this would justify some sort of criminal penalty.
On the other hand what he did was in no way comparable to murder. It was more on the level of entering an empty house though an unlocked door and taking a sandwich from the refrigerator. Except that nobody was deprived of a sandwich. (JSTOR, the aggrieved party, didn’t lose any money and didn’t want to press charges.)
So the loud outcry that the federal prosecutor was abusing his power by threatening to send Swartz to prison until he was an old man is not without merit. We have lost a bright and promising young man whose actions were surely misguided but not evil.
On the other hand we are not dealing with a rogue prosecutor here. This is what prosecutors do every day, though usually not to people with so many friends in the media. They routinely threaten to send people to prison for the rest of their lives in order to pressure them to plead guilty to reduced charges–even if they are innocent. That’s the kind of justice system we have and presumably that’s the kind of justice system the voters want, otherwise they would change it.
Philip Greenspun has a surprising answer.
Mark’s latest list of software he considers essential for a Linux desktop.
Here’s one of those things that “can’t possibly happen” but does. The project builds fine under the Visual Studio 2008 IDE, but if I run it directly under MSBuild.exe it fails with the error
error BC31094: Implementing class 'MMCLTSVCS.FooClass' for interface 'MMCLTSVCS.Foo' cannot be found.
The key is that the error involves calling a COM object. The project contains a reference to the interop for that COM object: Interop.MMCLTSVCS.dll. However it does not contain a reference to the interop for one of the other COM objects that Interop.MMCLTSVCS.dll uses. Apparently this works fine under the IDE but fails with an obscure error message under MSBuild.
Visual Studio’s “Unused References” function provides an easy way to get this error. It will helpfully remove any references that are not used by your .NET code, without considering whether they are used by any of the referenced interops.
Consumers of digital hardware, software and services lost their most tireless advocate last week when Ed Foster died of a heart attack.
EFF’s Fred von Lohmann provides an obituary:
In Memoriam: Ed Foster, 1949-2008
For those who were wondering whether the new Congress might be just a little bit friendlier to open-source software, small developers, independent creative types and consumers in general, Lawrence Lessig thinks he has found the answer: Dems to the Net: Go to hell.
A while ago Ron Garret wrote a widely-read article called Top ten geek business myths. Personally I’m not planning to start a business, but the article contains a throw-away remark that offers a plausible answer to a question that I find interesting: Why don’t businesses use LISP?
Ironically, C programmers understand this much better than Lisp programmers. One of the ironies of the programming world is that using Lisp is vastly more productive than using pretty much any other programming language, but successful businesses based on Lisp are quite rare. The reason for this, I think, is that Lisp allows you to be so productive that a single person can get things done without having to work together with anyone else, and so Lisp programmers never develop the social skills needed to work effectively as a member of a team. A C programmer, by contrast, can’t do anything useful except as a member of a team. So although programming in C hobbles you in some ways, it forces you to form groups whose net effectiveness is greater than the sum of their parts, and who collectively can stomp on all the individual Lisp programmers out there, even though one-on-one a Lisper can run rings around a C programmer.
(via Elliotte Rusty Harolde.)