What would be the right way to ask a someone how long ago they moved to country/city x (Canada in this example) ?
Would it be :
How long ago have you moved to Canada ?
Or maybe it should be : When did you move to Canada ?
It is because 'long ago' refers you to the past and is asking about a specific past moment, while 'have moved' is the present perfect tense. You do not use a present tense with a specific-past marker...
One of the hardest things to understand for speakers of most Continental-European languages—and for those who are familiar with any of them—is the very special status of the English Present Perfect.
Its form, though, can help understand its core meaning.
If I say "I have [...]", I'm not narrating any event but rather I'm describing my present state. If the square brackets contain [a new car], [a headache], or [a few friends in Haifa], you wouldn't dream of completing the sentence with an expression like "yesterday", "last week", or "when I was a kid".
Now, the turning point in the undertanding of the Present Perfect is when you succeed in assimilating, say, [visited Israel twice] to the bracketed parts above, ie [a new car], [a headache], and [a few friends in Haifa]: ie "I have [visited Israel twice]".
What's inside the square brackets, in fact, entertains the same semantic relationship with "I have" that we've examined with [a new car], [a headache], or [a few friends in Haifa]: the assertion that the subject possesses it now. In the case of the visits to Israel, what the subjct possesses now is the experience of two past events.
The key words are possess and now.
Obviously, you can't at the same tine say that you possess something now and, say, three years ago.
Addendum: one of my Latin-speaking ancestors — unlike my Italian-speakers contemporaries— would, only seemingly strangely, have no problem in understanding when to use the Simple Past and the Present Perfect in English.