Showing posts with label Search Engine. Show all posts
Showing posts with label Search Engine. Show all posts

Tuesday, October 26, 2021

The Right Tool for the Job

Recently I wrote about diagnosing a bad diagnostic tool and would like to expand on the proper use of tools. Last week I flew out to my boat to clean it up a bit and work on the engine. I needed to replace the impeller on the water pump which required removing a pin on the water pump housing. The easiest way to do that is with a hole-punch and a hammer. Unfortunately I didn't have a hammer on my boat and so I tried a number of other tools. I did have a hole punch and so I lightly hit it with a wrench, a screwdriver, and even a piece of wood. While I made some progress, none of what I tried was a good substitute for a hammer. Ultimately I drove to a local store and bought a small picture-hanging hammer. Only 3 whacks later and the pin came out nicely.

The whole time I was working on the engine, I kept thinking of the phrase, "When the only tool you have is a hammer, you tend to treat all your problems like nails." So what is the opposite of that phrase, when you have a bunch of other tools, but not a hammer? I'm not sure, but if you come up with something let me know.

This experience reminded me again of the importance of having the right tool for the job. With computers, this is very important. Anyone that has ever tried to work on Macintosh computers from the 1990's knows that the most important tool was a #8 Torx screwdriver. At the time you had to special order them but now you can find them at almost any store that sells tools.

While we all know the importance of hardware tools, there are a number of software tools that can make your life significantly easier as well. I remember one night trying to rebuild a corrupted database. It didn't have much data in it but the information it had was very important. To get the everything back, I looked at the raw data files using a hex editor. It allowed me to see the original data and write an extraction script to pull the information out in a human-readable format. Then I could rebuild the database and populate it with the correct information. Your typical editor or word processing software would have made the job significantly more difficult, if not impossible.

So how do you know if a better tool exists? Simple, just do a search on your favorite internet search engine and see if others have had similar problems. They will generally provide some ideas on what tools to use to solve them. That is how I solve car problems, boat problems, electrical problems, and even computer problems. Hopefully it works for you too.

Tuesday, December 29, 2015

Online Recommendations

This afternoon I am working on a personal project related to a recommendation engine. I don't really want to go into too many details as there are plenty of examples that I can draw from without giving away any secrets. While I don't have a confidentiality agreement in place that prevents me from talking about it, I am working with friends and that bond is stronger than any signed legal document.

This example has nothing to do with the project but is something else I have been working on today as well and illustrates the project. I want to take my family on a vacation next autumn. We enjoy going in the month of October because the usual crowds associated with summer are long gone. However we can't do the usual summer things nor can we do the winter activities either. Shoulder seasons can be tough but I am looking for a good recommendation on where to go. There are some important criteria to take into account:
  • Price
  • Ease of travel
  • Level of fun
  • Not needing a vacation after the vacation
  • Flexibility to add one or two people
I am taking all of my children along with my wife and their spouses. Right now I only have one child that is married but that number could change in the next 10 months. I also have children in college and that may limit who can go, which is why I need the destination to be somewhat flexible.

Now I travel almost every week of the year and so I have a very good understanding of destinations that are easy to get to vs. ones that are difficult. I also understand that it might be a coin toss for certain destinations because of things like hurricane season in the Caribbean or early snow for places like Alaska.

So how does one distill all of the information into a helpful recommendation engine? If you look at how Amazon does it, they ask you to start with something and then show you what other things people have also looked at, starting with the most popular. In the case of a vacation, I might look at hotels in Hawaii and Amazon would also show me places like Mexico or Tahiti. It would then be up to me to weed out the best choice based on my criteria.

If you look at how online forums handle this issue, I would simply provide a posting with the criteria listed above and then leave it to other actual humans to give recommendations based on their previous experiences. The problem with this approach is that someone may have gone to Alaska at this time of year and had a wonderful time. However a freak snowstorm during my proposed dates could severely impact the "Level of fun" in a negative way.

If you look at other online vendors like Backcountry.com, they employ human experts that you can ask via chat windows to get their opinions. This is better than the online forums because the experts should know enough to filter out the "Alaska" responses. The only problem is that it requires paying people to answer questions and provide recommendations.

The Google search engine has sort of combined all of these methods with some extra smarts to give you the results of your online searches. Theoretically if 100 people all enter the same search criteria, the links near the top of the results are the most popular ones that have been clicked. For the first 10 searchers, the results are not nearly as accurate. However as more and more people click results, the better answers rise to the top.

There are a number of recommendation engine algorithms and some of them work better than others. Unfortunately none of them are perfect and so it is a matter of figuring out how much effort to put into my next project. I have some ideas and will post the results as they come in.