Friday, July 17, 2009

This can't be the whole story

Slate published a potentially-interesting article asking 6 of the "Most Important Questions...About the CIA's Targeted Killing Program". I label it "potentially" interesting because it appears, to me, to have a gaping blind spot, ignoring the most obvious and "important" question of all. It's one that almost all the coverage of the story that I've seen seems to ignore, as well (although to be fair, I haven't had the time to read a ton about this yet, so maybe this is getting asked somewhere.)

But not only does it fail to ask the question, it goes so far as to note that the answer is obvious to "even the daftest political observers". I suppose being called "daft" by Slate is a badge of honor, but I'd prefer it if they actually addressed the question, rather than assuming its irrelevance.

The question in question is, "Why is this a big deal?"

Note that this isn't the same as asking, "Was this program illegal?" I think it probably was basically illegal, but the CIA does illegal stuff all the time. In fact, it has a whole branch of operators whose entire purpose is to perform tasks in such a way that the United States can't be identified as behind them. Sure, sometimes there are political and not legal reasons for that, but you'd have to be totally insane to think that everything the CIA did, while attempting to be as covert as possible about it, was ok under national or international law.

But getting back to the original question, why wouldn't this be a big deal? Well, for starters, because we already do this openly! Predator drones launch missiles targeted at individual al Qaeda leaders in Afghanistan and Pakistan all the time! If the only difference between that program and this one is that this one is done with bullets instead of missiles, by people on the ground instead of in a trailer in Nevada, well, it's hard to see what the big deal is. And so far, that appears to be the only difference.

Why is this relevant? Well, the whole reason this story is blowing up right now is because VP Cheney allegedly ordered the CIA not to disclose the very existence of this program to Congress. Now, that is flagrantly and obviously illegal, even to a guy accustomed to shooting his friends in the face with a shotgun, and I don't think he would've done that to protect a program that was so minimally different from what we already openly acknowledge doing, and that was never even operational. Not to mention, I find it hard to believe that such a program would, upon discovery by CIA Director Panetta, be shut down immediately and rushed into a briefing to Congress the very next day.

So what else don't we know about this program? Because this can't be everything.

Wednesday, July 15, 2009

Should liberals opt into the public plan, even if they already have insurance?

Yesterday, the 3 House committees responsible for health reform released a joint bill - the American Affordable Healthy Choices Act - that probably represents the most liberal version of whatever health reform legislation the country ultimately receives. Notably, it includes a public option, though one that the Congressional Budget Office expects to enroll only 10 million Americans by 2019.

So I've been wondering: do liberals who believe in some form of single-payer have an ethical obligation to enroll in the public plan, regardless of whether they already have health insurance, and in particular, regardless of how good that insurance is? I'm tempted to say yes, since the whole point of the public option is to compete with private insurers. If we believe that the country should have one dominant public insurer, it would seem hypocritical not to enroll in it when it comes into existence.

So now my question is: since I already have employer-provided health insurance, if I enroll in the public plan, will I have to pay my premiums out-of-pocket?

Friday, July 10, 2009

Why it doesn't matter that you can't run Photoshop on ChromeOS today

The more I read about ChromeOS, the more excited I get about it. I think there's a lot of potential, but I keep hearing one argument against its significance that I'd like to address.

"I'm not interested in ChromeOS, since it won't be able to handle heavy-duty programs like Photoshop."

That might be true today, but it won't be true forever (or even for long). Here's why:

The first computers were programmed by directly writing instructions to the CPU - take this bit here, do this to it, send it there, etc - and all of that coding was done by hand, which is extremely difficult and tedious work. Even today, if you want to write fast code, that's what you do - write directly to the metal (typically using an assembly language, which is basically semi-readable machine code).

But what most people who want something pretty fast (like Photoshop) do is write in C/C++, which gets compiled into that same machine code. It runs a bit slower than if it had been written directly in machine code or assembly, but the tradeoff is it's insanely easier to write and debug. And as compilers get better, it becomes almost as fast as straight machine code.

It wasn't always that way, however, and when C came along, it wasn't nearly as fast as assembly; and when C++ came along, it wasn't nearly as fast as C.

Eventually, Java was introduced, and for years, the C/C++ folks argued that nobody who wanted to write a powerful application would ever do it in Java, because it would be too slow. That's because everything in Java has to get run inside of a virtual machine, which sits on top of your actual machine, and so it just adds this other layer of stuff that has to get executed. Initially, that made Java really slow. But the virtual machines got better and better, and today, Java is basically as fast as C/C++, and many high-performance applications are written in Java.

It's important to note that minor speed differences remain among all these languages, but those differences are completely overwhelmed by how much faster CPUs, hard drives, RAM, graphics cards, etc are. So it's still true that running a virtual machine beneath a Java app is slower than if you didn't need the VM at all, but the speed penalty is at this point extremely small (I'm sure there are language pedants on both sides of the C++/Java divide who would take issue with this, but for this discussion, I think it's a fair point to make).

And so today, faced with a new layer of abstraction - Javascript running in a browser written in C++ on top of a kernel, also written in C++ - people are saying, "No way could you write a web app that would perform as well as a C/C++/Java app." And today, that's true.

There's really only one main reason for that (plus a few small implementation quirks): browsers, which can be thought of as the new Java virtual machines in this story, are slow, and both HTML and Javascript aren't considered "fast" or even particularly pleasant to program in. But that's changing: HTML5 is a substantial improvement on HTML, and Javascript is becoming more and more powerful every day. And browsers - Chrome, Safari, Firefox and even Internet Explorer - are getting faster and faster at running HTML/Javascript apps. In a few years, they'll be fast enough that the performance of web apps will only be a little worse than that of C/C++/Java apps. And CPUs, and every other piece of hardware, will be faster, so it won't matter that much.

In addition, there are a number of projects that already aim to make it even easier to write high-performance code for the web - nativeclient and O3D being just two (Googley) examples.

So yeah, as of right now, you can't and wouldn't want to run Photoshop in a browser. But by the time ChromeOS ships next year, that may be less true. And a year or two after that? Mmhm.

Called it

I just want to point out that my very first post on this blog, over a year ago, is made way more relevant and credible with the introduction of ChromeOS. I cannot wait for that little number to make it onto one of my machines!