22nd of June, 2005 ANTE·MERIDIEM 11:54
Update from the wie-geht-es-bei-Aidan front; I’m good, thanks. I’m currently living in very dilapidated student accomodation quite close to Potsdam, where even though the computer facilities are running Linux and FreeBSD, they block outgoing SSH—fuсkers—whence the lack of updates here. I was putting off doing lots of the things that would help on the not-being-depressed side of things—signing up for Spanish class, hanging out with Berlin.pm, chasing women—until I got a full time job and the related income, and that, together with the months-long lack of a full-time job, ended badly.
Happily, I just got paid, and realised that, even working part-time, I’m making more than enough to live here, and to pay my bills. So, contentment, whence energy, whence the togetherness to apply for better jobs and to find a better place to live, whence (hopefully) less travelling every day and easier contract work, because I won’t have to travel 20 minutes to a net café every time I want to use SSH :-) .
On a different tack, here’s my take on software patents, a judgement I’ve had grosso modo for some time, but that’s been firmed up since I’ve started working part-time at the European Patent Office. In a demonstration of the power of derivative thinking—but I’m sure you’ll excuse it from this source—let me take something from an interview with Donald Knuth of a few years ago. The PDF was distilled in February 2002, and should be available online as fea-knuth.pdf with a bit of searching —
I'm against patents on things that any student should be expected to discover. There have been an awful lot of software patents in the U.S. for ideas that are completely trivial, and that bothers me a lot. There is an organization that has worked for many years to make patents on all the remaining trivial ideas and then make these available to everyone. The way patenting had been going was threatening to make the software industry stand still.
Algorithms are inherently mathematical things that should be as unpatentable as the value of Pi. But for something nontrivial, something like the interior point method for linear programming, there's more justification for somebody getting a right to license the method for a short time, instead of keeping it a trade secret. That's the whole idea of patents; the word patent means "to make public".
I was trained in the culture of mathematics, so I'm not used to charging people a penny every time they use a theorem I proved. But I charge somebody for the time I spend telling them which theorem to apply. It's okay to charge for services and customization and improvement, but don't make the algorithms themselves proprietary.
There's an interesting issue, though. Could you possibly have a patent on a positive integer? It is not inconceivable that if we took a million of the greatest supercomputers today and set them going, they could compute a certain 300-digit constant that would solve any NP-hard problem by taking the GCD of this constant with an input number, or by some other funny combination. This integer would require massive amounts of computation time to find, and if you knew that integer, then you could do all kinds of useful things. Now, is that integer really discovered by man? Or is it something that is God given? When we start thinking of complexity issues, we have to change our viewpoint as to what is in nature and what is invented.
Now, as with everything secular from Knuth that I’ve read (and, more importantly, understood :-), this is full of sense and good judgement, and I very much agree with it. However, there is some information complementary to these paragraphs that helps make it clearer what he means —
First of all, note that registering a patent costs money. If you go through the full process—and many don’t, because the legal instrument of Patent Pending protection (something that costs money, though less) combined with the long processing times in the area of software, has sufficient legal leverage for them—you need to be making well over €20,000 per patent for the process to be economic. In Europe. With comparable figures for the patent in the US, which you also need to apply for if you’re doing multinational business, and Japan, which ditto. So, you need to have one hell of a good idea if patenting it is to be economic; something like PageRank, say. Even the Frauenhofer MP3 patent wouldn’t have been economic had they not given the encoding suite away for free in software in the mid-90s; now it is, and Apple probably make lots of their money for them.
This means that whoever has the patent on mini games during load screens in computer games, cannot be making money from it individually, because no-one writing computer games cares enough to license that invention. They may, perhaps, be making money from it as part of a portfolio—but the games sites I’m aware of don’t see it being used anywhere, so there’s a good chance that’s not the case.
Secondly, note also that the rules say that you can’t patent anything trivially obvious to someone skilled in the relevant area, and that you must be patenting something new. So, Amazon’s one-click ordering patent is ruled out on the first ground, and I’m pretty certain that if you or I had access to the search tools of the US Patent Office, we could rule it out on the second ground too. This means that the US Patent Office isn’t doing its job—and there are legal means to redress this—not that software patents in themselves are evil.
Thirdly, and this is something he doesn’t mention above, Knuth’s programming has been a lot closer to mathematics than to mechanics, or chemistry—the decision if curves are better encoded as cubic splines or quadratic splines, for example, is answering a general question that could be posed at any point in space and time in this universe. But what I do when I’m programming, and what Danny O’Brien or Sergei Brin or almost anyone out there who is productive today, does—the vast majority of the time—is interact with the existing infrastructure. Network libraries, the HTTP protocol, Cocoa, Carbon, Win32, Javascript, the Web—and none of this is, in any perceptible sense, close to mathematics. Much closer to, say, how do I make this car into a better driving experience given that n% of the roads it’ll see are this rough, m% 20% rough, and p% less rough, and that of the various materials shock-absorbers are made of, vulcanised rubber is q% as expensive as this other plastic compound. If society values invention sufficiently to award a patent in the second area, I have trouble seeing the argument against the first.
So, conclusion; software patents—not bad in themselves, if you believe patents themselves are worthwhile. US Patent Office’s behaviour with regard to them—not that good, room for improvement.