I just read an interesting posting at Samizdata.net concerning intellectual property and libertarianism. The author goes over the basic types of intellectual property for the purpose of trying to make some observations about libertarian reaction to music file sharing. I find myself torn on the subject of file sharing. I think that rampant file sharing is theft, but at the same time I think that occasional sharing is actually good for the industry (for example, maybe I make a few files available to select friends of some artist that I found interesting in the hope that my friends would like them too; if I’m right, it’s possible that those friends will buy that artist’s music). Is that an intellectually consistent position? I don’t know. And I don’t much care. I want to see the artists get paid for their work, but there are probably other economic models that will come to pass after a while (which may see the big record labels go the way of the dinosaur).
But the mention of patents and software touched on one of my pet peeves. I understand the reasons for patents, and I actually think some software patents are good (and I’ve even considered submitting for one through my company, although I haven’t had time to persue the process yet). However, one of the first software patents that I learned about, and the most egregious example of the genre, was the one concerning the use of XOR for screen cursors. In 1985, Autodesk was forced to pay $25,000 to license the XOR patent.
To understand the absurdity of the patent, one must digress into computer geek land for a bit (or 8). Bitwise XOR is an operation that can be used to “flip” all of the input bits so that the output is the “opposite” of the input. XOR stands for eXclusive OR. The easiest way to think of it is to remember the phrase, “one or the other but not both”. Some examples:
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 1 = 0
10011001 XOR 11111111 = 01100110
01100110 XOR 11111111 = 10011001
In the old DOS days, the cursor was simply the inverse of the character that the cursor was on (and each character was displayed in a single block on the screen). Each character was composed of a set of pixels, with one bit representing one pixel (i.e black screen with green pixels). If the bit representing the pixel was one, the pixel was on. If it was zero, the pixel was off.
Since the bits represent the pixels, using XOR (with a mask of all ones) caused all the pixels that were off to come on and the pixels that were on to go off (see the last two examples above). The simplicity of the operation was that it was the same operation to make the cursor blink on or off, and it was efficient, since the operation could be performed in hardware.
So why was this patent bad? Because the operation was so simple it was something that any programmer would eventually come up with after a little thought. In fact, it was almost a math exercise, which as noted in the Samizdata article could perhaps be thought of as a discovery, rather than an invention.
I think part of the problem is that the patent office doesn’t have the training in many cases to recognize the difference between a simple algorithmic technique and a truly novel and new idea. The other thing that bothers me is how companies will suddenly “discover” that they had a patent on something important and try to blackmail the industry into paying for it (*cough* GIF *cough* Unisys *cough*).