My Best Teaching Is One-on-One


Of course, I team teach and do special lessons, etc.


But my best work in the classroom is after the lesson is over --
going one-on-one,
helping individual students with their assignments.


It's kind of like with computer programs, walking the client through hands-on.
The job isn't really done until the customer is using the program.


Tuesday, May 15, 2012

Using Patents to Claim Things You Didn't Invent

Can Dr. Mitchell's testimony in Google vs. Oracle finally be used to drive the stake through the heart of software patents?

Here's the situation in a nutshell. We have a disagreement between several experts on two points, dynamic vs. static function, and symbolic vs. non-symbolic reference. The patents say dynamic and symbolic, and Dr. August claims Dalvik's dexopt is doing the thing the patent claims neither dynamically nor symbolically. (If they are right, neither does Java, which means that the Sun patent could well be on something never actually implemented, one of the common travesties of the way software patents are currently done.)

Dr. Mitchell, for Oracle, claims that Google's experts are perverting the meaning of both dynamic and symbolic.

But an awful lot of software engineers agree with Dr. August's analysis, and his use of both terms.

For my part, I have heard computer scientists (generally of the type that don't write low-level code) use dynamic and symbolic in the sense that Dr. Mitchell uses it.

But, again, for my part, if we have to use the semantics that Dr. Mitchell is using, I cannot understand how the patent could have been granted, how these claims could have survived the review. If the patent is interpreted that way, there is absolutely nothing new (novel), original, clever, or in any way, shape, or form, patent-worthy in the claims.

Which makes me think that Oracle's lawyers must have been arguing in the patent office something quite different from what they are arguing in court here.

The difference is an interesting topic, and I will blog about it elsewhere sometime, but the point we have here is that software, like all math, is abstract. Abstract means that there is more than one way to interpret any program or software function, whether written in a high-level restricted dialect of English (as most software patents are done) or in real source code that can be compiled and run on real machines.

Even a real program, instantiated and running on a real system, is still subject to interpretation. Change the icons, and much of the sub-function of a traffic control system looks like sub-functions of a factory control system.


There's a danger when you mix abstract with law. That's why the US Constitution doesn't guarantee freedom or privacy or just about any of the democratic ideals specifically. Even when it talks about family welfare, it does not try to define that, leaving the implementation to the individual states, where there is a better chance of making meaningful laws.

When you bring abstract stuff into the courtroom, lawyers can pretty much twist it whatever way suits them, and you have to rely on the judge being unusually (even for judges) sharp, fair, just, knowledgeable, etc., to protect people from predatory legal practice. The Founders knew that. That's the real reason for the Constitutional injunction against all the former trappings of royalty and royalism. (False royalism, but bringing that up will just confuse things here.)

Well, patents are actually one of the few terms they couldn't quite get rid of. But the Constitution specifies limited time. It also specifies another limit that tends to get washed over quite regularly, these days -- there is no provision for giving people rights to things they didn't create or invent.

(I'd prefer that the sale of copyrights or patents should be illegal, but I'm not prepared to argue that here.)

But it is very clear that a patent should not be expanded in the court of a lawsuit beyond what the patent office recognized as patented. That's happening all the time, these (especially with non-practicing entities "owning" patents), and it's what is happening here. Oracle is trying to use their patents, which they bought from Sun, to exercise control over something no one at either Oracle or Sun ever invented, something that actually predates both companies.

The abstract nature of software makes it particularly susceptible to this kind of expansion.

Okay, I just said the same thing I said above, but it seems it has to be emphasized and said in many ways, before people get the idea.

And this is why software patents are not appropriate. It's far and away too easy for unscrupulous or misguided lawyers to expand the scope of the patent way beyond what it should be.

Sunday, May 6, 2012

Copyrighting SSO (at least in APIs) Sure, you can rename, re-organize, and compile, iff ...

Another post on Groklaw:

If and only if Java had a macro-preprocessor like C, you could define a set of macros that mapped Dalvik APIs to Java APIs. And you could give Dalvik a macro-preprocessor, and write a set of macros to reverse the mapping, from Java APIs to Dalvik.

Of course, that not only fails to answer the question, but it also opens a whole new can of worms.

If you do such macro conversion, the combination of macro-preprocessor and the macro definition files will be just as infringing as the current Dalvik implementation is.

That is, if the jury says 10%, then the conversion macro-preprocessing stuff would have to be 10% infringing. Dalvik itself could be separated from the infringment arguments, but the macro-preprocessing stuff could not be.

But then there is that other can of worms, that I sometimes complain about. Lawyers would notice that the macro wall appears porous to them. They would miss the point of the conversion, and assume that macro-coated Dalvik infringes because Dalvik (even with deliberately different APIs) itself infringes, and pretty soon Oracle's lawyers would come after Ruby, Lua, and any other language more recent than Java, because all such languages can (in theory) be mechanically converted back and forth. One successful conversion, and it's offf to the races.

The reason software and other literature/fine art were supposed to be kept out of the patent pool is precisely this possibility of conversion. When you start abstracting things out to this level, everything becomes everything else. The patent with highest precedence is the dictator of the world, and, I'm not speaking metaphorically, I do mean the Constitutions of all Constitional government be damned.

Why am I suddenly talking about patents? Precisely because the argument about copyrighting APIs destroys the barrier between copyright and patent. Yeah. I mean that if you can claim and enforce copyright on APIs, in a few years some lawyer is going to twist that to the plots of novels, and so it goes.

If and only if we could get the lawyers to forever agree not to try to expand the claims on their patents, we could allow source code to be patented on the condition that changing one variable name must be considered equivalent to changing the shape or composition of one physical component, and that changing the compiler or run-time library would be equivalent to changing the physical implementation framework, and that changing the language would be equivalent to a complete re-implementation of the device in different technology, and completely beyond the claims of the patent. And the entire source code would have to be registered and published, just the same as the blueprints have to be registered in physically implemented patents.

Otherwise, you absolutely will open the door to abstracting away all barriers to frivolous litigation, and it's just a matter of time until the entire economy comes grinding to a halt under the burden.

And, now that you think about it, copyright is always a better fit for software than patents, when you place the proper requirements on software patents. The only real issue is how to protect a combination of software and machine, but even that is going to require a lot more specificity than is currently practiced, because a CPU can be used as a basis for arguments abstracting the patent out of the physical implementation.

Symbols are inherently abstract.

Intellectual Paucity

Oh, the Oracle vs. Google thing and all the would-be Napoleans salivating over the prospect of expanding Intellectual Paucity laws.

(If you can't control the world in an economy of plenty, force an artificial scarcity of something important, right?)

Well, if you think IP is a good thing, here are a few things you need to remember:

(1) You can't own what is in someone else's head.

(I mean, sure, there are people who believe they can, but you and I know that, as soon as their back is turned, we think what we want, whether we were acquiescing to their reality distortion field before or not.)

(2) If you can't control it, you can't own it, and the law can only go so far in controlling something for you.

(Again, you and I both know that you can't afford to hire someone to sit in my shop forever, bringing out a shotgun every time I power up my lathe or start etching a new PC board.)

These are natural laws, as sure as air is hard to confine. Which brings up a third point, a natural law as inexorable as gravity, which you should consider carefully before you decide to excrete in your own gruel by "enforcing" "your" "intellectual property" "rights":

(3) Attempts to defy the two principles above have, in the past, resulted in violence, bloodshed, separation of colonies from their "mother country" (Tea party, anyone?), and the downfall of regimes.

This is the final reason we should tread a little lightly when we want to "monetize" "our" "value" in our "IP" a little more fully, even if we refuse to understand the courtesies creative people offer each other.

Why is it so hard for non-practicing parties (including the several "Artists Associations" and certain "standards organizations" to recognize principles like sharing and standing on the shoulders of giants?

Why is it so hard to understand that you can't squeeze the society around you and escape the squeeze yourself?

Why is it so hard to recognize that, if you want to be free to make money, you have to let others be free to make value -- free, as in, without your interference?

Why is it that everybody seems to want to rule the world?