Wednesday, June 19, 2013

Someone has already invented it.

Patent law, or any other law protecting someone's inventions from being stolen, would seem like a good idea, but even if it is, how can it be implemented? The idea is to stop someone from taking an idea, a method, a newly invented or discovered technique, and stop them from using it without compensating the originator of the invention or the researcher who came upon it, who no doubt spent considerable effort to find or create this thing or method. This cause might be noble, there is nothing inherently true in the idea that one should be compensated for a discovery, however it came about, only a deep historic sense of right to compensation that may well be founded on nothing.

I don't call out the sense of right to compensation, I have no strong opinions on whether it is right or wrong to claim you deserve something for your effort, but I do have a strong opinion on who, if anyone should be compensated. I believe that anyone who invents something, comes across something, discovers a new thing (new to them) should be allowed to use that thing and be one of the people to which compensation must be paid, if at all. This belief drives a stake through the heart of the patent system as is stands, as the Patent system does not reward the people who invent. The patent system does not reward everyone who discovers new things. The patent system rewards only the first person to claim they invented it, per territory.

This gulf between what seems right and what is, is insurmountable, irreparable, and points to a basic flaw in the expectation of compensation for invention and discovery.

I find that thinking about things in terms of infinity often helps to bring a more stable conclusion. If the world were infinitely large, and there was only one patent office, what would happen? Apart from the patent office being immediately overrun, the chance that your invention can be patented drops to zero. In an infinite world, someone else has always invented it before you.

In fact, this is pretty much the situation we are now in. So many trivial patents are applied for by so many, that if you go out of your way to invent something new, you're not going to be first. Not even because you didn't file for patent first, but because someone will invalidate your claim through a selection of other trivial patents claiming that they make your patent a trivial extension of the suite of common sense they are presenting. It matters not that you may have been the irate to make the link, only that you didn't have enough money to defend your case.

The other failing is when you really truly invent something new, but it is overridden by someone else who also thought of the new technique, and this happens all the time. It even happened with calculus. In this case, the loudest will win.

If the aim of patent law is to inspire people to invent, then I'm not sure they could have chosen a much worse way of doing it.

At the base of this argument is a reference to the reason why the current system cannot work. Why should a first to invent be given any advantage? Why should a happy accident be rewarded? If anyone could have come up with the inventions, as can be seen in the car of multiple inventors, then why should the invention stand for anything? If the invention is trivial, then how can you claim it cost you enough effort to deserve s reward?

If you can't answer these questions with any certainty, then patent law is a house built on sand.

Tuesday, June 18, 2013

The problem with nouns.


When you name things, you nail them down. You attach meaning and you introduce some rules about what they are, how they are related to other things around them. When you give them a precise name, you exclude them from discussion where they might have been heard. When you give them a vague name, they lose their power, they become part of the mob, become only one part of the larger picture, but not able to speak up for their individual essence.

When you name things, you give them a context. A context gives a thing meaning. A dog has more context than an animal. A Doberman has even more context, and when you think of a Doberman you have some expected attributes. But all three descriptions are valid. Interesting though is how many attributes are lost when specialising. How likely would "edible" be considered as an attribute of Doberman in comparison to animal? This expectation colours our thinking, starts to hide things from us when trying to reason about how things interact. These specialised contexts are the trick behind many lateral thinking puzzles. Things that are attributes of the things mentioned, but excluded because if we did not inhibit them, we would have an overabundance of information.

Meaning and context also link things together. A dog has a hair colour, which seems a good idea to add as an attribute when you're designing a form to hold information about some specific dogs. You don't find leaf shape, or engine size on a dog information form. As your information structure gets larger, you  might add less and less frequently known or requested information, such as time since been to vet, or preferred food. As you add to this the signal to noise ratio drops.

The signal to noise ratio directly affects how effectively you are using your memory. In the simplest case, you are wasting memory for all the members of a structure that point to null or contain a default value. In the more complex case, you are ensuring that the members are likely to be organised by some design meaning rather than how they are used by the methods that read them. This latter problem is the one that causes cache thrashing and coupling in the code between the functions and the containers of the data.

The pattern of access of the data directly affects how efficiently you are able to process the data. If there is only one process that will ever be done to the data, then the data should be formed such that it is for that operation. If the data is for many functions. Then ya data needs to find a best fit schema for all the operations with bias towards the most frequent.

Naming data into collections will often stand in the way of this as data may expect to belong in a structure that bears a resemblance. This context link means nothing to the computer unless the context is part of how the data processed.

Unname your data. Decontextify your schemas into transform oriented collections.