So as I work (slowly) on the GUI version, I have been thinking about how to how to maintain licensing. The USB dongle idea is the ultimate protection, but it is costly in price. Plus then it absolutely requires shipping. Someone may wish to use the pro version without the relay hardware, or build the hardware themselves, in which case no shipping would be needed. So I have a couple ideas.
The first idea is to use a serial number license key plus an additional code for a specific computer. The user would purchase a the serial, and then they would need to provide me with some sort of code produced when first entering the serial on a computer, and then I would supply the code to allow it to work with that computer. This would lock the activation to that specific computer. There are issues with that, for instance what happens if the computer dies (I have no way to see proof). My idea is that additional computer codes could be purchased at a reduced price.
The second idea is to use a serial number license key, but require the computer to be online each time the program is run. It would find and download needed activation. But this is not the same as an activation server, and has the limitations of both the user and the online server to be both actively online for the program to run.
I am thinking of a combination of the two ideas. If someone wants a short term use, then they get a license that requires it to be online. But for long term use, a computer code would be given.
So what do you think? It is very hard to figure this part out. There are pluses and minuses for every idea I have about this. I am trying to think of the best balance. I am sure everyone would like it if there was only just a serial number activation, but that is so easy to pirate.