Thursday, February 02, 2006

I've invented the greatest compression algorithm ever....

...and I'm keeping it a secret...

I have heard that in some places in the world, that "family" means something far stronger than it means in the U.S. A family is not only the people you happen to share blood with, its people you share money with too. We're not talking just mom and pop either, the whole extended family. If anyone in the family makes a fortune, the family has made a fortune. Everyone's money is everyone's money. Now mind you, I heard this from one asian friend - this is hearsay. But even if it isn't true, its not hard to imagine if it was (in fact, I think I have this arrangement with my girlfriend, I can extrapolate from there).

This is of course communism on a tiny scale. It is basically an anti-meritocracy - or at least its a society where personal merit gets you nothing. My friend also told me that because of this, no one is inclined to work very hard. That makes pretty obvious sense to me, if I want to save up for a new computer, but realize I need to save up enough for 15 computers. I may do it, but its probably discouraging to work extra hard so that lazy cousin Bob can sit on his ass all day and get a computer out of the deal.

No offense to anyone anywhere in the world, but I really like the fact that I can work really hard and generally, I can expect reward for that. On the other hand, it gives me almost equal (yet morbid) pleasure that lazy cousin Bob does nothing and has nothing. It seems like justice. Of course, life isn't precisely fair, but this formula "on average" works.

I've had a few discussions lately with people about open source software. I'm constantly reminded that open source software is NOT "free as in beer" (although some is) but its "free as in speech". Honestly, who am I to tell you to not write free (as in free) or open source (as in speech) software? If you didn't write it, some programmer somewhere might get paid to write it which might not be a bad thing given the state of our industry - but at the same time, its your saturday afternoon. Write away. I'm happy to use your free software.

Equivalently, no one should tell me not to try and sell software. Selling software is becoming harder since on certain sales tiers its difficult to compete with free competitors, but none-the-less, if I want to try, I should be able (and I am).

This far into this argument, I usually don't see much complaining. Zealots in either direction might argue that the other side is ruining the software industry, but generally, if you're not stepping on toes, its your business. Where this hits a head though is when one of the "sell software" guys tries to protect an idea - usually with a patent. Plenty of people believe that ideas (or algorithms in software) cannot (or should not) be patented. Others (usually those wanting to make some money) believe otherwise.

Let me come clean a moment, I have 2 patents on software techniques. They're not silly patents in my opinion, they are truly novel techniques I'm confident I invented. I could be wrong, but now that the patents are granted its up to you to prove that, not me. Since having them, I've learned a lot about patents - and most of it isn't good.

Let's say that today BigComputerCompanyA dead-on violated one of my patents. Keep in mind, a patent is a passive device. The government doesn't spring into action on my behalf and nail BigComputerCompanyA. Its up to ME to defend my patent. Which means a court battle. Which means money. Basically, little old me has to take BigComputerCompanyA to court. Good luck.

Now, if my patent is super-obviously being violated, I "might" be able to find a law firm willing to take on the case for part of the winnings. But it better be a darn clean case. If I can't convince some law firm of this, defending my patent becomes a battle between my money and BigComputerCompanyA's money as expressed in lawyers and time off work. Guess what, I probably can't compete with that.

Now, what if SmallComputerCompanyB violates my patent? My money has a better chance against their money. They don't have as much. Losing time off works to fight patents sucks for them too. The problem comes down to return-on-investment. If you're going to spend even 10000 dollars defending your patent - what do you hope to gain? Will you somehow make 10001 dollars if you win?

Lets flip the tables again. What about if I violate BigComputerCompanyA's patent? They have a lot of them you know. They patent everything. They patent stuff that has OBVIOUSLY been done by people WAY before them (click here for an example of such a patent that some people (those wacky funsters) believe is invalid - why such patents are granted I can't say - the obvious answer is that the patent office contains idiots, but the real answer is probably the same answer we always get in one form or another -- "money"). That doesn't matter though, it would take someone's money to prove that their patent is wrong (i.e. its been done before). Who's willing to step up? Even if you proved it, BigComputerCompanyA doesn't get reprimanded, they simply get their patent taken away. One of a thousand they made this year. Fact is, when you have a team of lawyers who gets a regular salary to file patents, you might as well file as many as you can. Stupid, silly ones included.

For BigComputerCompanyA, patents are simply cheap reasons to sue people. If anyone pisses them off, they look through their millions of patents and say "Aha! We patented air and SmallComputerCompanyB breathes. Sue them. Sure our real reason for disliking them is that their product is better than ours, but we can screw them by suing them over anything we can."

Sucks for us. Needless to say, the current patent system blows - unless you're a big company. We're led to believe patents are about inventors protecting their ideas. They're not. Patents are about money - and if you dont have it, oh well.

Now the title of this article is about my new compression algorithm. What does all this off-topic patent stuff have to do with it? A lot.

I have invented a compression algorithm. Honestly though, I've invented scads of compression algorithms. But I do have a new one that I've proven on paper has very nice characteristics. Compression algorithms are really important things. You could argue that companies around the world have saved millions (if not billions by now) because they were able to make data smaller. The ramifications are obvious. When you download a program to your phone, if its uncompressed it costs you 10cents to download, if its compressed its only 6cents. Multiply that savings by millions and millions of people, phones, computers, CDs and companies over many years.

Honestly, I don't know if my compression algorithm is far better than existing ones. I haven't got around to completing the code for it. I mean I WAS very excited about it - but I started thinking about the end-game. Let's say my algorithm is the best algorithm ever invented (humor me for a second - mm'kay?). Lets say it compressed better than ANY other algorithm out there for some type of important data. By compressing data better, you can argue I will be saving even more money for millions of people and companies around the world.

But... once I get it working - what do I do with it?

I can go ahead and create a program out of it. If its good, it will likely be copied by many other programmers. What's worse is that I'll probably be spending a lot of time tweaking and cleaning the algorithm. Other programmers can steal the algorithm and focus on sales. In fact, a bigger company (maybe even BigComputerCompanyA) might make a competing product and throw millions of advertising dollars behind it.

In other words, if I create a product based around this algorithm, I have to compete when selling it. Sounds like good old fair capitalism except all these other guys brought to the table was a pretty GUI and marketing. I theoretically invented something mankind hasn't seen before (we're still humoring me, remember?).

WTF? If I patent a new type of ladder, I don't have compete. If I invented a new kind of combustion engine, I wouldnt have to compete. I INVENTED IT! I thought the patent gives ME the right to sell it ALONE - at least for awhile. If drug companies couldn't patent their drugs, their millions of research dollars would be for naught. If that happened, they'd stop researching. I wouldn't wanna be the guy with the first case of a new strain of antibiotic-resistant bacteria in that world.

If the algorithm really was this good - the competitors (i.e. algorithm thieves) would be on the market fast.

What about if I find those lawyers who will help me sue in case of infringement? Yeah, if it is a clean cut case I might find someone willing to not charge me to sue them for 20% of all suit proceeds. Rock on! Now I only have a 20% tax when someone steals my stuff.

Even then, the problem isn't solved.

You can patent something internationally, but the protection you get is pretty minimal. If someone across the world releases a competing product using my algorithm, its nearly impossible to chase them. The internet will allow them to distribute their application everywhere, even my backyard. They may be willing to sell it for a fraction of my product cost or they may even give it away - there is probably nothing I can do to stop someone in say Russia or Hungary or wherever from doing this (I cant even get the dweebs in Nigeria to stop sending me email -- dudes! I'm ONTO your SCAM.. I'm NOT helping you TRANSFER Funds!! There ARE NO FUNDS! (except mine I suspect) humph..).

Now if you're a "free speech" zealot, your argument may be something like "tough shit - algorithms dont belong to anyone - you SHOULDN'T profit from it - it belongs to everyone." Well, thats an opinion. Sure, "free as in speech" means you can say what you like, but you're allowed to copyright it too.

My only problem with that is that I'm a busy guy (not necessarily productive as I'd like to be, but I am busy). Perfecting and coding the algorithm is going to take a lot of time. I need to push something else in my life aside to get it done. Its already a risk that when I'm done, I might find out it has some major flaw and doesn't work anyway.

Basically, I can work a few months on it - OR - do nothing. Either way, I make out the same as lazy cousin Bob. I get nothing.

You can argue that I should give away this algorithm for the benefit of humanity. But remember, But if I do, I'm not necessarily giving it to humanity - I'm probably giving it to someone else to profit from.

Not to mention I'm working on other stuff that just might help humanity too and maybe even make me a few bucks. I already give away Mailinator and many thousands of people seem happy about that (although its not exactly a humanity improving invention).

This article isn't about a compression algorithm. The ramifications here are widespread. A million scientists out there are busy and are working on the project they feel will get them the most benefit. Maybe thats fame, money, or respect in their community.

I've talked to enough academics to know that idea stealing is rampant. Or at least "rampantly accused". Patents are incredibly great tools to protect ideas for the rich. They don't seem to work out quite as well for the not-rich. My compression algorithm might be the best one ever invented (ya never know). It might save thousands of people and companies millions of dollars .. but until something changes, its going to stay "my little secret".

2 comments:

There is a third way, though, and that is to sell your method to a medium to large company, and let them defend it on your behalf. I'm sure Amazon would pay nicely for something that allowed them a fractionally higher compression for their data streams, for example. Then they can fight M$ or Google for patent validity, whilst you simply spend the money they paid you for your IP.

If you do this, please consider sending me a donation! Fractional donations of large amounts are always welcome. :-)