Tuesday, January 25, 2011

Optimizing Politeness

So we have this little thing called 'The Golden Rule' which saith: "Do unto others as you would have them do unto you."

For some things, it's a pretty good policy. I'd prefer not to have people eviscerate or defenestrate me, so I figure it's appropriate that I don't do those things to them, either. In some cases, though, it doesn't work as well.

One of the best examples of this is holding the door open. Now, I understand, if you're closely tailing some chap that it may be nice for him to perform this behavior, lest it fly shut into your face and give you justification for saying "Ouch!". However, this is usually not the case.

Often, when I am a significant distance from the aforementioned door, the human who is traveling through it decides that it's expedient to hold it open for me, anyway. I'll use math to demonstrate why this is bad:

If my current velocity and trajectory causes the door-opener to perceive that I would like to emulate him in traveling through the opening created when this door is ajar, he could run a rough mental calculation and determine the approximate time before I reached the door. If he, for example, estimated that it would take me 5.47 seconds to reach him, yet it would only delay my journey for 1.2 seconds for me to open the door myself, then we have a net loss of 4.27 seconds.

However, there are other complications. It is possible that I'm not actually heading for the door. Further, he has removed from me control over my environment. Last of all, common politeness obligates me to thank him, and the combination of all of these has far more power to derail my train of thought (which is always going somewhere weird like when I come up with these posts) than the instinctive act of opening the door.

Now, don't get me wrong, there are cases where this door-holding obsession that people have can actually be helpful. If I'm carrying a live salmon or have my hands glued together, the difficulty of opening a door is increased tremendously, and I'm grateful when somebody relieves me of this arduous activity. However, when somebody's thoughts are, "Hi, I'm going to burn 5 seconds and interrupt your train of thought because it will save you 1 second if I am correctly prognosticating your destination," I do find it slightly annoying.

Some day, I'll learn to be a jerk and make progress in optimizing the world. For now, I just thank them and move on.

Saturday, January 1, 2011

My Conversations With Search Engines

First:

Me: Hello, Google, I would like to know how to open a file using JScript.

Google: Here are thousands of webpages telling you how to open a file in JavaScript

Me: Yes, but I want to know how to do it in JScript

Google: Since JScript and Javascript are the same thing, I have happily given you all the links with either one.

Me: Actually, they're not the same thing, and I need to do it with JScript

Google: To help you out, I've even put every instance of "JavaScript" in bold so that you'll know which websites you want to visit first.

Me: Okay, look, these links aren't helpful. You've buried the ones that actually reference JScript 50 pages in. Can you only show what I'm searching for.

Google: The best thing about about assuming equivalence between JScript and JavaScript is that if I only returned the 800,000 pages that only say JScript, you might run out of stuff to look at. Now, you'll have to opportunity to go through millions of pages before you reach the end of my wisdom.

Me: Yes, but can you please just give me the pages that say JScript.

Google: Aren't you glad I understand what you want even better than you do?


Second:

Me: Hello, Google, my friend Marc wanted me to look at his web page, but I can't remember the address. So I'm just going to put his name into the search engine and see if I can find it.

Google: Fortunately for you, there are many people named Mark who have the same last name. Aren't you excited about how many pages you have to look at?

Me: Yes, but his name is "Marc", not "Mark".

Google: The great thing about the name "Mark" is that it is also a commonly used noun and verb. For example, here is a page where somebody referred to somebody else by their last name only and said that they were going to "mark" them. In fact, I've found hundreds of pages with something similar, and I just know that you want to look at every one of them.

Me: No, I don't want that many pages. I only want the ones that say "Marc"

Google: The thing I've learned about humans is that they never know what they want. I'm pretty sure I'll have far more success guessing the intent behind the search rather than actually looking for the terms they entered.


Note: In both of the above cases, I fixed the problem by using msn search (now called Bing, though it wasn't during my first experience). To some degree, it does the same thing; it's just not nearly as bad.


Third:

Me: Hello, Youtube, my friend recommended a band called Valkyre. I'd like to hear a few of their songs.

Youtube: That's wonderful! Here's a link to the game Valkyrie Profile, and here's a video somebody made involving the Starcraft Valkyrie unit. It gets better, though, many songs, both old and modern use the term Valkyrie, and I'm going to give you every one of them.

Me: No, you don't understand. The band is "Valkyre", not "Valkyrie". That way you can narrow down the videos to only the ones I want.

Youtube: I have a dream...Some day, correct spelling will truly be a thing of the past. The Internet has made great strides in making sure that every word has at least three valid misspellings, and I'm proud to say that I'm now contributing.

Me: No, no. That's BAD. People should spell things correctly, and you should actually pay attention to what I'm writing.

Youtube: Sadly, a few backward-minded people still care about spelling, so I'm going to swallow my pride and put a link that says "Did you mean Valkyrie" below the search bar. But I'm going to assume that you did, even if you don't click on the link, and I'll send my results accordingly.

Me: Can you please just give me the results for Valkyre?

Youtube: I'm so happy. This poor man misspelled Valkyrie, but I quietly brushed his error under the rug and pretended that he didn't. It will make his life so much better.


These are all actual events, though I've simplified them and anthropomorphized the search engines. Note that if you try to recreate this problem, you need more than just the name given. You also have to have other words to narrow down the search. If it returns a lot of irrelevant pages, it's happy, but if it would only return a few pages, it starts doing stuff like I describe above so that it still can return a lot of irrelevant pages.

For example: If you only search for the term "Valkyre" in youtube, it complies because it can return a lot of pages where the video submitter misspelled "Valkyrie". However, if you search for "Valkyre music", it's horrified that it can't pile thousands of results onto you, so it commences with the egregious violation above.


I understand that there are actually benefits to these features, but the user may not always want them. Here's a recommended UI for future search engines:
The "Google Search" button is for people who know that the search engine understands their intent better than they do, and the "Actual search" button is for people who really want what they entered.
Basically, search engines are a little like people on forums. They'd be a lot more useful if there was an option to make them actually read what was typed.