Weaving in ends is a necessary-- and for some, an evil-- part of any knitting projects. I however, love weaving in ends and I attribute that to the fact that I've finally learned how to do it so that the ends don't poke through the right side of my project.
Here I will show you how to weave those pesky ends in almost any situation.
Here I have a swatch with which I am using a contrasting color of yarn for easy visibility. I've threaded two ends through to the wrong side of my swatch to simulate the joining of a new skein.
Cross the two ends as you would to tie. You will want to pull the ends taut but now so tight that it makes the fabric fold.
Thread one end onto a tapestry needle. Begin working the yarn in a duplicate stitch on the wrong side of your work. Do this for several stitches.
Carefully thread the yarn back through the stitches just worked taking care to slide the needle between the fabric and the duplicate stitches.
Skipping the first stitch bar, thread the yarn back through the same stitches. This is what is going to make sure your ends stay in place and hidden.
Repeat for the other end.
You'll see that besides the white stitch, the ends woven in are virtually invisible!
I prefer to weave in ends, block my piece, and then snip the excess yarn. This way the fabric has a chance to relax and settle first. I find this also aides in keeping the yarn from popping to the front of your work. Though be sure not to snip the yarn too close to the base.
Once you get the hand of this, I think you'll find something oddly satisfying about weaving in ends. Maybe you'll even enjoy it!