Dynamic, static, weak and strong in languages

I came across this interesting post. Here is the jist:

dynamically typed language is a language where the type of a variable can be altered at any time. (It is a string, now it is a Fixnum, now it is a Time object, etc.)

statically typed language is the opposite. (Decide what x is once for all and don’t change your mind!)

strongly typed language is a language that is being strict about what you can do with your typed variables. (Don’t mix them… or I will throw you an error in the face!)

weakly typed language is the opposite. (Do what you want with your different types. Mix them all! We’ll see what happens!)