In order to forgive yourself and others, you must un-tie the knot (of relation) with memories that relate to the situation when you make that dosa (anger, hatred).
The only way to un-tie the knot with memory is by understanding feelings, thoughts and action that relate to the memory and observe it. Release (understanding) can only happen when we observe the situation yet at the same time, not being involved or given reaction to the content (of situation).
In this way we may be able to understand that the situation has happened and it was wrong. We decide that: “it was wrong things”, yet the truth is: it was happened. And we cannot change what has happened in the past. With this understanding, we may be able to change the future.
Then we may promise to ourselves that we will remember this lesson, and not to repeat it. Keeping this sacred promise and thus we may have the path of forgiveness to ourselves. We must remember that we cannot control everything.
A soul starts to wonder “who am I?” only with the activation of Purusa (the essence of life itself). Activation of Purusa happen in the state of mind. So that a rough form (of a human body) can start to question about themselves. With this realization, a soul became more attracted to the spiritual knowledge.
The intellect is defeated by spiritual mind, and thus the mental practice is started. With the practice of sadhana (mindfulness), the evolution of the mind is upgraded. And the desire to become one with the Nukleus become faster until the unit (human intellect) become one.
Understanding who you really are is the true genuine knowledge. Serve to all with the good deed toward the pure consciousness is the true act and the promise to continue perform bhakti (devotion to the greater essence of beauty) is the true nature of the soul.