« on: July 25, 2007, 10:23 AM »
thanks for taking my comments into consideration :-)
Let me try to explain what I mean by automatic learning. Basicallly, what it means is that everytime that you select a certain search result, the score of the selected search result increases in two ways. First the overal score of that item (file or program) increases for any search that matches its name. Second, the score of that particular item for the set of letters that you used to find that search result also increases greatly.
For instance, let's say that I want to start visual studio. If I typed "visual" it would probably be one of the first (if not the first) result in Launchy. But let's say that I want to start visual studio with "vs" instead. Probably, if I just type "vs" Microsoft Visual Studio will not be the first result to appear in the list. Maybe it will be the 5th or 6th, for instance. I can then use the down key and select it (i.e. I press ENTER). Then, the next time I type "vs" Visual Studio will be the 1st or 2nd item in the list. If it is the 2nd I can just select it again and the next time it will certainly be the 1st result. Launchy automatically learnt that I want to use "vs" as the keyword for Microsoft Visual Studio.
The neat thing is that Launchy also scores higher any previously selected items compared to items in its index that have never been selected. So, imagine that when I first typed "vs" Microsoft Visual Studio were not even on the list. No problem. I can type "visual" that first time (or maybe just "vis") and find and start visual studio. Then the next time I type vs Visual Studio will certainly be on the list as Visual Studio does match "vs" and now it has a higher score.
I don't know the exact heuristics that Launchy uses, but it is really cool. You can feel how Launchy is learning what you want. Very often it will do the right thing right away, but when it doesn't it is very easy to "teach" it. There is no need to use menus and keywords to configure it.
Now, imagine that later on you install some other program called "version control", for instance and for some reason you don't want to use "vs" to start visual studio anymore, but to start this new program. Well, you simply need to select "version control" a few times (once or twice) after typing "vs" and Launchy will quickly learn that you changed your mind. Visual Studio will still be shown on the list of results, probably as the second option.
By the way, Launchy _also_ has a pretty flexible keywords plugin
(installed and enabled by default) but in my experience you rarelly need to use it as the automatic learning, coupled with fuzzy matching works fine in most cases. The only times that making a keyword is necessary is when you want to use a keyword that does not match the file name or if you want to be able to pass parameters to the program that the keyword starts.
BTW, I may be making sound all of this too fancy, with names such as automatic learning and fuzzy matching. The whole point is that the launcher should just pay attention and try to do what I want it to do :-)
Regarding the stack vs the +ACTION modifiers (which by the way I think are pretty clever and cool) I think that the stack based approach has an advantage in that, once you select one item in the stack, the launcher can use its "search" capabilities to match the next element on the stack.
Let me explain with one example:
Imagine that I want to send an email to you and I want to attach a certain log file to the email.
In QuickSilver I can first search for the log file, called "My log.log" for instance. Imagine that I type "log" and find "My log.log". I type TAB. The default action was "open" but I type "e" which finds the "email as attachment" action. I type TAB. I type "mou", which finds "firstname.lastname@example.org" on my address book. I type ENTER. A new email is open in Outlook, addressed to mouser and with the file "my log.log" as an attachment. Total keys typed:
"log[TAB]e[TAB]mou[ENTER]" -> 10 in total.
How many would it take with the +ACTION approach? FARR cannot continue matching after the 1st element is found, can it? And even if it could, it would be a bit ackward, because if it starts showing you the email addresses on the results list, then you lost the name of the file that will be attached (as you did not type the whole filename, you just looked for it my typing a few letters). With the stack based GUI, you keep all the information, and if you make a mistake you can go back easily (just type ESC to go back to the previous stack level).
Also note how after you type each "TAB" the "search context" changes in a Stack based approach. Initially it searches for files and programs. Then it searches for actions and finally, depending on the action type it may search for something else (in this case for email addresses). Plus, it you have automatic learning you can just type "e" for the "email as attachment action" because the launcher learnt that you want to use "e" to select that particular action.
I agree that these types of usages are a bit advanced. But when the interface makes this powerful capability extremely accessible, even for non power users.
So again, looks can improve the program capabilities in some cases. I think that this is a very good example.
BTW, as I said, I really appreciate you guys taking my comments into account. I will definitely keep checking on FARR from time to time.