Tuesday, December 06, 2005

The Squirt-Gun Offense

Kids! don't read this ... its dangerous advice

While attending a not-so-recent computer conference I stayed at a rather interesting hotel in San Francisco's tenderloin district. The hotel provided an adequate coffee and donut breakfast each morning. I came into the eating room one morning, grabbed a jelly-filled, a cup of coffee and had a seat. Across from me was a well-dressed man munching happily. Before we could start a conversation, the hotel manager walked up to him and stated "Sir.. these donuts are for guests only."

The man stood up with a smile and walked out leaving a half-eaten cruller on the table (possibly this being the biggest crime). The whole event struck me and I warily looked at the hotel manager to see if he was about to yell at me next (although I truly was a guest). The donut thief's nerve was pretty impressive. He wore a business suit and maybe stopped in at random hotels on his way to work every morning and munched free crullers. If he was ever caught he simply got up and left. Now say what you will but this guy truly was a thief. He was stealing. Granted, it wasn't a lot of monetary value he made off with but he was a thief nonetheless. The question as to why the hotel manager didn't call the police is unneeded. The offense simply wasn't that big of a deal. The police would have been overkill and probably cost the hotel more angst than simply booting the guy out.

The bottom line is .. this guy got away scot-free. He got half a cruller, a few slurps of coffee and was politely asked to leave. Welcome to planet earth - where small crimes are unpunishable. Or, more precisely, where retaliation for small crimes can be more expensive than the crime itself.

I decided to test my theory more. I happen to be a speaker at this conference but that afforded me little except access to the speaker ready room (which coincidentally included yet more donuts and coffee). Speakers did not get the privilege of entering the exhibit hall prior to its opening time. Getting in a few minutes early would not be bad since there are no crowds and the exhibitors are all too happy to talk (and give free schwag) to speakers.

The guards at the entryway must have been retired military too - their only insecurity seemed to lie in the fact that they weren't allowed their M16s at this gig. The donut-thief inspired me. What if I tried a forced entry? Would I go to jail? Would I get kicked out of the conference? Would ANYTHING happen besides someone stopping me and telling me I "wasn't supposed to be there"? No, nope, nuh uh, and not a chance.

I went for it. I looked confident and strolled in between the two para-military at the door. They glanced at my badge with strained necks so I picked up my pace. I got past them before they jumped me.

Guard-1 put his hand on my shoulder "Sir! you can't go in.. sorry.. no non-exhibitors in before 10"
(Guard 2 immediately assumed the "drunken dragon" stance from what appeared to be a style of wing-chin kung fu)
I confidently replied "um.. I.."
Guard-1 interrupted me "Oh wait, speakers have a meeting in here today don't they?"
I pretended to have a clue "Um.. yeah!"

Now here's Tyma's life rule #152. If someone believes something wrong - but you WANT them to believe that wrong thing -- say as little as possible. Your words can only screw things up. I knew this. I shut up. I kept walking.

As I filled my bags with polyester t-shirts I didn't need, squeezing toys with company logos on them, and the occasional usb-drive key fobs I thought more about this whole concept. Its real simple - break the rules with no consequences. Usually the crimes you commit are small - but the trick is that they can add up. The business man from above could probably eat free every day. Getting into places your not supposed to (like conference exhibit halls pre-opening) often have advantages - after all - they are keeping you out for a reason. All you need for this little plan is some confidence. Our business man wasn't embarrased or frightened when asked to leave - to him - it was simply the end of this opportunity. On to the next.

Now it sounds like I'm a proponent of this whole underhanded way of life. I do believe you should reach out and grab what you can in life lest it pass you by. But I hate it when I am the victim of these little trangressions a lot. There must be a way to punish these mini-evil-doers. After playing with this idea for a long time I've come up with a name for it -- the "Squirt-gun offense". Succinctly, this describes any offense that the logical retaliation would step "over the line" and thus you really can't do it. The idea is that if you can't retaliate like you like to, you can at least soak the perpetrator in water. For example:

1) Someone maliciously cuts you off in traffic in a personal way.
Correct response: Side-swipe them and give them the finger.
Why you can't do that: Your insurance goes up and you might injure your finger.
So what you usually do: Attempt to cut him off in return or get yelled at by your wife for trying and sit back in traffic as the loser.

2) Your business rival asks if your wife has quit her Jenny Craig program again.
Correct response: Comment that you used to sleep with his wife and you're glad that's over.
Why you can't do that: You've overstepped the line - he'll punch you. His insult was subtle - yours is an attack. It would make sense to retaliate with a subtle insult but that's hard to do once your mad from his comment. Your intent is to retaliate hard at this point. His subtle insult was really an attack to, but as a conversation opener and given with the right tone, it could be cloaked as concern.
So what you usually do: Smile and comment on your wife's successes.

3) Someone off the street has the nerve to crash your wedding reception and eat/drink.
Correct response: Have the groomsmen take him out back and beat the living snot out of him for trying to ruin someone's special day..
Why you can't do that: Groomsmen will get in trouble and they are your friends (presumably).
So what you usually do: Politely ask him to leave now that he's full and hope he doesn't make a scene.

Shooting someone with a squirt-gun is probably illegal (squirting with intent to dampen) but it's not likely you'll get busted for it. If you do it, you'll probably make the target mad - but there really isn't much they can do about without stepping over the invisible line themselves. If they whack you - its a whole new ball game. The judge is not going deem assault "ok if first squirted with water". A better plan by the hotel manager from our first story would have been to simply walk up to the business man and start pelting him with shots from a super soaker. What's the business guy going to do? Tell the cops they squirted him? Heck, he stole donuts - I think its even.

The paramilitary guys guarding the exhibitor hall looked downright uncomfortable not having a weapon of some sort in their hands. I doubt a greanie-meanie squirt cannon would have satisfied them completely, but it would have been a step in the right direction. They would have begged for offenders.

Honestly, I haven't found a solution to the problem of being the victim. I don't think there is one that works in every instance. Quick wit is a big helper in a lot of cases but doesn't do much if someone cuts you off in traffic.

However, at least now I have a name for the type of situation I'm describing. Anytime someone does something that makes me want to retailiate but circumstances prevent me from logically doing so, I should squirt them with water - they committed a "squirt gun offense". The more it happens to me, the more I try to learn from it.

I try my best to not be the victim, but if you get me, congratulations. And I hope you're wearing waterproof undies.

Mom, I think I'm a Cyborg

Keyboards are good. Mouses are dumb.

If I was an alien looking to slowdown the technological advancement of the human race, I would have implanted into their society the things we call the keyboard and the mouse. In fact, the only personal proof I have that this was not the case is if aliens were involved they would have updated the pain by now. Like making the "shift" key a foot pedal or something.

Assuming mailicious aliens weren't involved, this isn't good news. It means we were silly enough to have invented these things ourselves. And then we were silly enough to let them "catch on". And we're silly enough to not personally diverge to a more efficient invention just in case we might later still need to know how to use this one. We humans follow a frighteningly simple herd mentality, God forbid someone jumps off a cliff and yells "free USB fobs!" - we'd be goners.

Truth is however, that with the keyboard at least - we have adapted. Our brains and fingers have optimized this abomination enough to actually get decent output. Obviously, the optimal tool would be one that can output words (actually, getting rid of words and going right to thoughts would be way better, but that is as of yet - out of scope) as fast as we can think them.

Now you might actually have been thinking the opposite. That the mouse is the more precise tool of the two. Well not for me it isn't. For artists and graphic manipulators the mouse is all that and a bag of chips - but for text people like myself, you can keep your seedy mice.

The problem with mice (which the nefarious aliens know all too well) is that its use removes your hand from the keyboard. To open a file in your favorite editor, chances are you grab the mouse, find the pointer with your eyes, move it to "file", click, move it down to "open" (hopefully not having to deal with any of those sub-menus that always seem to unpop off my screen as I'm moving down trying to get a lower entry) and once again click.

The alternative way to do this using just the keyboard (which I'm callously assuming is where your fingers already are) is to hold ALT, press F, let go of both, then hit O (thats as in "oh", not zero).

I have never written down all those operations before now and just looking at the two makes me feel stupid to have every used a mouse to open a file. The ALT-F method is no secret - why the heck don't we use it? ALT-F then O is even two different hands - it really is quite fast. My only explanation is that such keystrokes are cryptic and will require a bout or two of memorization whereas the peachy mouse-menu route hand-holds us right along the way. The mouse cursor gives us a constant bookmark of where our thought process is "I just clicked the file menu - now I'm moving to click open".

There is a nice book by Andy Clark called Natural Born Cyborgs. He makes an interesting observation that we all are already cyborgs (loosely defined as a fusion of humans and technology). His example is that if I am at your house, I may ask you "Do you know what the word poikilotherm means?". If you don't you would say "No, but we can look it up!". Upon consulting your house dictionary or your ubiquitous wifi connection, you can easily do that.

Now similarly, I might ask "Do you know what time it is?". And, at the very instant of me asking, you may not. However, the common response is to raise your wrist to your face and say "Yeah, its 4:30".

You liar. YOU did not know. Your watch knew but took credit for its perpetual temporal omniscience. I always know what time it is cuz dadburnit - I have a watch! In effect, we have extended our concept of self to include our watches - thus in Dr. Clark's claim we are cyborg. (Note that grammatically speaking, that sentence should end in "cyborgs", not "cyborg" - but if you ever watched Star Trek you'd know that cyborgs don't use contractions and often speak of themselves in a hive mentality - thus if we are them, no worries about speaking like them)

I may be creating a tenuous connection, but to me, the mouse seems like the dictionary and keyboard like the watch. That is, the keyboard is way more a part of me than the mouse is. I say this because I have painted myself into a very interesting computer-using corner.

My primary editor is a program called Emacs. It is as old as me. It was invented to provide editing capabilities on machines long before there were graphical windowing systems or meeces (some claim it was invented to scare small children, these however are bad people and ought to be ignored). Thus, everything (I mean everything) can be done with a precarious set of keystrokes. Without argument, these keystrokes are hard to learn - but once you do, your productivity goes up. Or more precisely, you are no longer slowed-down by the burden of learning the keystrokes while your real intent is to actually get work done. You go from an unproductive keystroke learning stage, hurdle the entire semi-productive mouse usage stage, and arrive in a land of control-key laden goodness.

To further my argument that keyboard=watch, here is my predicament. I sometimes get asked "What's the keystrokes to do XYZ in emacs?". After a moment of thought, I often find myself stunned that I do not know. I mean - I DO KNOW - I do XYZ all the time! I just can't tell you.

In effect, I have used these keystrokes so long and talked about them so little that the exact sequences have left my conscious mind. In other words, there are many keystrokes that my fingers know that I do not. At times, I have literally had to observe my own fingers to answer a question about how to do something.

To this end (again, I work 99% of the time in text, I fully understand my observations are irrelevant for more graphical professions) I have structured my desktop to be purely manipulatable by keyboard. I didn't do this consciously - it happened in stages and one day I noticed my mouse had dust on it. Using the mouse feels like using a pen in my left hand. I can do it, my output will inevitably be the same (albeit harder to read maybe) but I'm faster with the pen in my right hand.

I fully understand that if the aliens I mentioned in the first paragraph do exist, then I am a dangerous revolutionary in their eyes. I am thwarting their ingenious mouse device intended to often remove my hands from my productive keyboard. It is distressingly likely that some large death ray is pointed at the top of my head as we speak (and thanks to my body's recent affinity for dihydrotestosterone, this is much easier to target from space).

You never know though, it is possible they may be more subtle and simply try to slow me in other ways. I shall in the coming weeks keep a close eye for incoming packages that lack return addresses but contain USB footpedals that have the word "shift" on them. If such a thing arrives, I may heed the warning and go back to using my mouse. Until then, ALT-f x.

The Idea about Ideas

I have an idea - I am going to start dating Julia Roberts

You're probably laughing at me aren't you. The idea of dating Julia Roberts is pretty far fetched - at a minimum I'm not a movie star, I'm likely not her type, and my girlfriend is likely to present a significant impedance to the entire process. Not to mention Julia Roberts is (statistically speaking) probably involved in a relationship at this time.

When you think about it, you didn't laugh at me because trying to date Julia Roberts is a bad idea - it isn't. In fact, millions of men on earth will tell you it sounds like a very, very (very) good idea. You laughed at me because making that idea a reality is really hard. In fact, while it may not be impossible, it's close.

You've heard that ideas are a "dime a dozen" and you might even believe it. Despite this, you've also probably found your self in a position of having an idea you're sure is revolutionary. You probably can't help it (I know I can't). Truth be told there are very few ideas that are original. The problem is that we are animals that create ideas based upon the work of others whether we realize it or not.

After 1.5 years running, I still get on average 2 or 3 "thank you" emails a week for having the mailinator.com service running. If you don't know about it, it's a neat idea where email accounts are only created once the email arrives for them. The nice part about that is that if you need an email address for some service on the web that asks for your email (which you know they will spam if you give it) you can simply make up anything@mailinator.com and give them that. Later, you can then check that email box. After that, you never worry about that email address again while nefarious spammers put it on every list they own. Score one for the little guy. (Read the FAQ for more info and a good laugh).

The part that gets me is that every now and then one of those emails tell me "your mailinator idea is brilliant!" - (or something similar). It seems like a lot of people are happy about the service but a good chunk are stunned by "an idea so brilliantly simple, I should have thought of it.". Check here, here, and here for some quick googly results of "mailinator idea".

There are only two flaws in someone telling me "your mailinator idea is brilliant!". One is that, the basic idea of mailinator wasn't mine. It was Jack's. Jack is an aspiring ex-resident of Syracuse, NY, idea guy, my ex-roommate, and is currently conducting the well-known "how long can i go without cutting any hair on my body" experiment. I remember sitting across from him and a beer having the conversation:

Jack: Hi Bartender
Paul: Hi Bartender
*several beers later*
Jack: There should be a service that accepts email for any address
Paul: They already have those they call them stuff like "ya-hoo" and "H O T mail".
Jack: No, no, no.
Paul: yes.
Jack: No.
Paul: yep.
Jack: No - I mean with NO registration. Every conceivable account already exists.
Paul: That's a lot of accounts. And if there is no registration, how do you set your password?
Jack: No password.
Paul: So how do you prevent people from reading everyone else's email?
Jack: That's the brilliance - You don't!
Paul: Thinking of this is making me dumber. Please stop.
Jack: No! It's like any and every email box that any and every body can use!
Paul: That's it. Bartender - regardless what we order from here on out - just bring pepsi. We won't know.
Jack: You're not meant to "own" an email address. It's more like a disposable one.
Paul: Oh... huh. It becomes a cesspool people can use to redirect lots of spam to.
Jack: Yep.
Paul: Nice idea - but 1) No business model - very hard to charge for that. 2) It is going to cost a lot of servers and a lot bandwidth to handle all that spam. It's not necessarily a bad idea to give away a free service, but sort of silly if you're paying a lot to do it.
Jack: We can charge for ads.
Paul: If you're basing your whole business model on charging for web ads, you've already lost (unless of course, you're Google).
Jack: Oh yah.
Paul: Could try it though. Could setup some super draconian filtering to handle the onslaught.
Jack: (to someone else) Hi, I'm Jack. You smell good. Wanna go for a ride in my Le Car?
Paul: The bandwidth may not be as bad as we think if we refuse attachments.
Jack: wtf.. this is pepsi
Paul: If we're lucky the dam might hold.

It took me about 2 days to code up mailinator - I already had the servers and a graphic designer girlfriend. Turns out that it (surprisingly) worked fabulously.

This whole thing helped shape my idea about ideas. In long consideration I've sketched another of my life rules that there are actually only 4 types of new ideas (besides infeasible/bad ones) and the news is not good for those thinking they had a "brilliant" idea. The second flaw (from above) in the "your mailinator idea is brilliant" thing is that it wasn't all that brilliant - it might have simply been destined to happen. Here they are:

1) The "obviously next" idea

This is by far the most common type of idea. And surprisingly stuff like Einstein's theory of relativity fall in here. Basically said, the idea is merely an extension of existing knowledge. Someone is bound to think of this - overall if you've collected all relevant, existing knowledge in a (possibly highly technical) area - it's the obvious next step. It's obvious to think that if Einstein had not discovered the theory of relativity (that discovery surely moved forward based upon some of his own ideas) someone else would have. They say Poincare was hot on the trail. Clearly, Einstein, Poincare and every other scientist in that field were basing their work on the work of countless others before them. If nothing else they had an understanding of calculus, newton's laws, and a plethora of scientific fact invented by other folks that let them get to where they were.

Thinking a bit more modern (and a lot less theoretical), when the WWW appeared it provided a platform for millions of new workable, ideas. Someone out there said "Hey this is a new way to sell tires!" And they were right. But their idea wasn't the web and tire sales. It was really just "given the web" I can do "tire sales". This idea (along with scads of others) was destined to happen, tirerack.com or not. Given that tirerack is a profitable business, this was certainly a "good" idea.

(fyi: by no means am I comparing the complexity of the ideas of selling tires and the theory of relativity - I am merely pointing out that both ideas were in some senses logical steps from work done by other/previous people and would have eventually happened with or without the credited dreamers).

2) The "now we're ready" idea
I remember when the likes of Wolfenstein3D and Doom graced the computer gaming scene a good few years back. They were revolutionary. They changed the face of computer gaming forever. They were the first (popular) 3-dimensional games. The interesting part was the creators of those games invented almost none of the technology that went in to the game. All the 3d math had been around for a long time. Even 3d worlds existed on powerful computers.

What those guys did recognize however was that common PC computing power had finally reached a place where it could make 3d graphics work in real-time. That was not possible before. 3d graphics surely were - but running down a 3d hall in a speedy enough manner to think you actually were was not. You can probably extrapolate backwards and think of examples of things people probably thought of before the technology was ready (i.e., wooden swords, the external-combustion engine, the bark condom).

In a nutshell, this type of idea is waiting for technology or methodology to catch up but has probably been thought of by 100 people. Its the "I've got a great idea how to mine gold on pluto" -- now we just need to be able to get to pluto and hope there is gold there.

3) The "but it's not infeasible if" idea

This is the type of idea where mailinator fits in and of course, so do many others. Basically, a decent idea is thought up by many people (ala type #1) but is killed somewhere along the way as infeasible. That infeasibility can be monetary or technical (note that type #2 is really just a subset here "it's possible if we had the technology") or probably a big list of other things.

From an external perspective it looked like Hotmail was an idea to lose money. In fact, tons of web businesses are started giving away free services. It's a risky business but the hope is that they'll catch up some revenue somehow on the backend (God help us if it's web-ads). Effectively this type of idea is bucking accepted wisdom. It's the "They say this won't work" type idea but somehow does anyway. More often it's a case that these ideas fail but we don't hear much about those. It's the ones that succeed that make for good stories.

No idiot in his right mind would open up a service with no income and ask for millions of spam messages. The trick was finding some slight idea-modifiers that made it work. To this day I also get yelled at for having too draconian of policies on mailinator (the anti-abuse code kicks in a lot). The real answer there is that if that code didn't exist, neither would mailinator. That's what made it feasible contrary to common sense.

4) The "luminary" idea

This is the type of idea we all think of when we have one. We've got an idea that we're sure is revolutionary. That's pretty hard when there is 6 billion of us running around. Do the math - not much can be unique among us.

What's worse is that I can't think of a real good example of this. Surely these cannot be extensions of a type#2 or type#3 since those are by definition already thought up just waiting for something to happen. It must be an extension of a type #1. Any new idea must be based on what we know. How far someone is able to think ahead however is the distinction to making something luminary. Something not destined to be thought up by someone else for many years. If we can theorize that if Einstein had never existed it would have been 50 years (or 100 years or whatever you like) before someone else thought it up - we can probably classify it as luminary.

Speaking of having no examples - I'm still working on this list. I can't think of an idea that doesn't fit in categories 1-3 and consequently I can't think of a type#4 idea. Its just seems like it should be there. I am open to suggestions.

The point of this article is not to dissuade you from having good ideas. By my logic, there are always new, great ideas waiting to be thought up. Every time someone thinks of one, two more can be built from there. In fact, you don't even have to think them up first. You merely have to act on them first. Given how fast our technology advances, it's a good idea to perpetually reconsider infeasible ideas every now and then. You never know when an infeasible idea might become feasible.

Unfortunately, I think the idea of me dating Julia Roberts will forever remain infeasible. Even if technology advances to such a state that somehow allows it to happen I won't get very far. See, I have played WWII computer games with my girlfriend and I've seen that girl with a sniper rifle. She's a crackshot and stealthy as a ghost. Julia and I may get to dinner and possibly even a movie, but if she reaches over to give me so much as a nuzzle - I'll be taking an dirt-nap. And that won't be a good idea.

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".

Losing Your Religion

Ever meet someone who screams at you that windows completely stinks and linux is the only operating system anyone should ever use? I did.

I get a kick out of driving around and spotting how many Chevy pickups I can find with the stickers on the cab where Calvin (from Calvin and Hobbes comics) is peeing on a Ford logo. Needless to say, you find a similar number of Ford pickups with Calvin peeing on Chevy logo - apparently, Calvin is an unbiased, no-nonsense pee-er and simply pees on whatever is put before him. Go Calvin.

In the few times I have spoken to owners of such vehicles, their views were generally vehemently true to their sticker. That is, if Calvin was peeing on a Ford logo, the owner was a devout Chevy owner - “Always owned Chevy, always WILL own Chevy.” What I’ve always failed to figure out is where the loyalty came from. Even the corporations themselves don’t seem to poopoo each other as much as these zealots do. At least not using an explicit urinary metaphor.

If I ask a sticker-owner why one is better than another, I always get passionate but mostly vacuous answers. “Ford’s are WAY better than Chevy’s.” or “Chevy’s are made like crap!” or from the other side “Fords suck! Didn’t you see Calvin peeing on them?!” Obviously, someone is wrong here. I'm no truck expert, but both companies seem to sell enough trucks to stay in business. Neither could be that far behind the other, and I imagine that like most product competition - if one gets ahead of the other, it isn't long before the trailing product to copy the features of the leader putting them in line again.

Certainly, Ford lovers hang with Ford lovers and Chevy lovers hang with Chevy lovers. I can’t say for sure if that’s because they were a Ford lover and sought out other Ford lovers or, they made a friend who converted them. Regardless, there is some truck-religion here that appears to have a dubious basis at best.

All this zealotry reminded me of a class I taught last December for a company in Ohio (Ford country! by the way). The students were quite adept and we didn’t waste any time getting to the material. One student however seemed to be having a few issues with his lab computer. Apparently, he was a linux zealot (this is just a guess, but read on)

He had no business being in my class really since he pretty much knew everything we covering and if he didn’t know it, he picked it up fast enough that I couldn’t tell. In other words, he seemed to be the kind of guy you like to have working for you. At one point however, he threw up his hands and exclaimed “how does ANYONE get anything done in this operating system!” (I think he was being rhetorical).

The statement struck me for a second. The lab computers were windows based - no one had any say in that, the training department of this company apparently just proclaimed it. From his statement I assumed (and later verified) that his desktop computer was linux. I guess I’m proud of myself for not giving him a snappy answer. Like “I dunno, try asking one of the billion people that use it everyday - want me to get my mom on the phone?”.

His statement was truly na├»ve and obviously based on his linux zealotry, not fact. First off, obviously he wasn’t truly lamenting that he couldn’t figure out something about windows, he was truly saying “This doesn’t work the way I want!” Funny thing was, we were doing Java, certainly he should have been able to adapt. Whatever editor he uses in linux (turned out to be emacs) is likely available in windows. Cygwin (www.cygwin.com) would give him a identical shell if the ms-dos box didn’t satisfy the minimal requirements we needed it for. If he liked Eclipse (www.eclipse.org) or Ant (http://jakarta.apache.org) all that runs seamlessly on windows too.

On top of that he only had to plunk on this machine for a few days. I wonder if one of those Chevy guys would throw such a fuss if forced to drive a Ford rental for just a few days. This guy was obviously bright, but his unfounded religious view was disappointing. It certainly precluded my interest in asking his opinion about computing matters. It would be like asking an insurance salesman about his competitors - the answer will biased and the facts concealed or enhanced as he saw fit.

I really don’t get this whole computing-religion thing. Personally, I have 2 windows boxes, 2 linux boxes, and 1 VMWare’d (http://www.vmware.com) linux running on one of my windows boxes as needed. If you count my girlfriend’s design machines I have 2 macs too (designers are an entirely different religious sect, they somehow still believe that even though the exact same apps exist for PC and Mac, they “really” only work on macs).

I have all those boxes (I think) because I love to tinker and I especially like to have the right tool for the job. This website is running on linux and this article was typed in Microsoft Word. I don’t see room for religion in the computing world. I can’t see a good reason to not simply use the “best” solution. Mind you, the “best” solution is situational. Feel free to tell me how wonderful linux is, but my Mom is going to use Windows no matter what you say. When I setup a scad of little servers, I’d probably choose Linux first because I can set them up fast. It would probably be my second choice too based on price (i.e. free).

I’m sure Microsoft’s IIS server is wonderful and probably terribly easy to configure (I have no idea), but I know how to setup Apache. I know plenty of its idiosynchrasies and its nasty little text-based config files. Generally, for servers I use linux, for desktop I use Windows. I develop in Emacs regardless of the O/S I’m using. I solve problems. I use the best tools that I know how to use to solve those problems. Price, existing knowledge, features are all factors in that decision. Religion isn’t. The guy in my class back in Ohio knows his stuff, but after his display he's no longer the type of person I'd want working for me. There are a lot of talented folks out there who base decisions based on their knowledge, not their passion.

If you’re forcing a solution on your customers (or users) than I guess that’s your prerogative. Computers don’t care, they crunch numbers. Go ahead and hate Microsoft if it turns you on. My friend Christian Gross (www.devspace.com) is famous (to me anyway) for advocating that humans have an underdog mentality. We always root for the underdog, until they become more successful than we “think” they should be.

In other words, feel free to hate Microsoft, but if they tumble you’re just going to start hating someone else.

I’m sure there are physical differences between Ford and Chevy trucks that make one better than the other for certain applications. If I was in the market for a truck, I’d guarantee you I’d figure out what those were. Regardless, I wouldn’t really worry about what Calvin decided to pee on today.

Technology is technology and problems are problems. I have hired religious developers before and its an unfortunate trait. It basically becomes a “management challenge”. I want to solve my customer’s problems and I want to make recommendations that aren't based on mindless zealotry, but instead are based on what will work best for them. Imagine that.