I'd suggest using
www.fitday.com - It's 100% free, I just got used to using it and am in love with it.. If you know you're going out for dinner, just try and keep your calories low for the day (i don't mean starve yourself, but watch what you're eating) and then try entering in some foods and see what you can eat for dinner that will fit within your daily limit.
And, if you're eating at a friends, just have smaller portions than you usually would and try and fill up on the veggies, etc.
Hope this helps..