I am the dev and yes, I do occasionally read the forums.
This is a semantic argument that I have no wish to engage in but I obviously need to address it.
The word "portable" is to me, just a word, it is not a goal. I did not set out to create a "portable" program. I set out to make a program that was powerful, flexible, easy to use, and allowed for a lot of experimentation and the ability to easily create alternate configurations or even run multiple release versions of the software either for testing or for accomplishing different goals at different times.
I do not intend to make any changes to the program just so that it can qualify as portable. If you feel that I have falsely advertised the program as portable and that this lack of portability somehow makes the program not worth your time then I deeply apologize. I would appreciate knowing where I have made these false claims so that I can correct the error. I don't want to offend any other purists out there.
The program does not rely on the information that is stored in the registry to function correctly or to adhere to the configurations defined by the user. If the small amount of information that normally resides in the registry is not present there, then default values are used and these are very minor settings that do no affect the actual functionality of the program.
The program needs to use the registry for storing activation information because the program is not intended
to be free. The advantage of storing this information in the registry is that once the system has been activated you can run as many different versions of the program on that system without having to re-activate each one. I did not intend for activation to be portable because then I might as well make the program free, and I do not want to require users to have an internet connection so contacting an activation server on each run of the program is out of the question.
The program is also not completely portable in that it cannot be run on Windows XP, or Windows 95, or Windows 3.1. There is nothing I can do about that. The program is also not completely portable in that it does require certain prerequisites to be installed like .Net 4.5.1, a speech engine (either the Windows desktop engine or Windows speech platform) and a Microsoft Visual C++ runtime library. Also if you take a copy of the program over to a computer that does not have a microphone attached, it won't really work the way you expect.
Since these are just some of the prerequisites for being a truly portable application, then we can say VoxCommando is definitely not a portable application. In my opinion, this in no way diminishes the value of the program but we are each entitled to our opinion on that.
In common English, I consider VoxCommando to be extremely portable in the ways that matter when trying to make the program useful for its intended purpose. Generally when I tell people it's portable it is in reference to this flexibility, or in reference to the fact that it cannot be installed in a protected location such as "C:\Program Files" because of the way it stores its configuration data under the root installation folder.